refresh docs
diff --git a/docs/dyn/analytics_v3.data.ga.html b/docs/dyn/analytics_v3.data.ga.html
index b59555e..3c74b87 100644
--- a/docs/dyn/analytics_v3.data.ga.html
+++ b/docs/dyn/analytics_v3.data.ga.html
@@ -97,7 +97,7 @@
Returns:
An object of the form:
- {
+ { # Analytics data for a given profile.
"kind": "analytics#gaData", # Resource type.
"rows": [ # Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.
[
diff --git a/docs/dyn/analytics_v3.data.html b/docs/dyn/analytics_v3.data.html
index f5ea488..909faec 100644
--- a/docs/dyn/analytics_v3.data.html
+++ b/docs/dyn/analytics_v3.data.html
@@ -79,4 +79,9 @@
</p>
<p class="firstline">Returns the ga Resource.</p>
+<p class="toc_element">
+ <code><a href="analytics_v3.data.mcf.html">mcf()</a></code>
+</p>
+<p class="firstline">Returns the mcf Resource.</p>
+
</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.data.mcf.html b/docs/dyn/analytics_v3.data.mcf.html
new file mode 100644
index 0000000..df1a01d
--- /dev/null
+++ b/docs/dyn/analytics_v3.data.mcf.html
@@ -0,0 +1,158 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-weight: inherit;
+ font-style: inherit;
+ font-size: 100%;
+ font-family: inherit;
+ vertical-align: baseline;
+}
+
+body {
+ font-size: 13px;
+ padding: 1em;
+}
+
+h1 {
+ font-size: 26px;
+ margin-bottom: 1em;
+}
+
+h2 {
+ font-size: 24px;
+ margin-bottom: 1em;
+}
+
+h3 {
+ font-size: 20px;
+ margin-bottom: 1em;
+ margin-top: 1em;
+}
+
+pre, code {
+ line-height: 1.5;
+ font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+ margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+ font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+ border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+ margin-top: 0.5em;
+}
+
+.firstline {
+ margin-left: 2 em;
+}
+
+.method {
+ margin-top: 1em;
+ border: solid 1px #CCC;
+ padding: 1em;
+ background: #EEE;
+}
+
+.details {
+ font-weight: bold;
+ font-size: 14px;
+}
+
+</style>
+
+<h1><a href="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.data.html">data</a> . <a href="analytics_v3.data.mcf.html">mcf</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+ <code><a href="#get">get(ids, start_date, end_date, metrics, sort=None, dimensions=None, filters=None, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Returns Analytics Multi-Channel Funnels data for a profile.</p>
+<h3>Method Details</h3>
+<div class="method">
+ <code class="details" id="get">get(ids, start_date, end_date, metrics, sort=None, dimensions=None, filters=None, max_results=None, start_index=None)</code>
+ <pre>Returns Analytics Multi-Channel Funnels data for a profile.
+
+Args:
+ 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)
+ start_date: string, Start date for fetching Analytics data. All requests should specify a start date formatted as YYYY-MM-DD. (required)
+ end_date: string, End date for fetching Analytics data. All requests should specify an end date formatted as YYYY-MM-DD. (required)
+ metrics: string, A comma-separated list of Multi-Channel Funnels metrics. E.g., 'mcf:totalConversions,mcf:totalConversionValue'. At least one metric must be specified. (required)
+ sort: string, A comma-separated list of dimensions or metrics that determine the sort order for the Analytics data.
+ dimensions: string, A comma-separated list of Multi-Channel Funnels dimensions. E.g., 'mcf:source,mcf:medium'.
+ filters: string, A comma-separated list of dimension or metric filters to be applied to the Analytics data.
+ max_results: integer, The maximum number of entries to include in this feed.
+ start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+ An object of the form:
+
+ { # Multi-Channel Funnels data for a given profile.
+ "kind": "analytics#mcfData", # Resource type.
+ "rows": [ # Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.
+ [
+ { # A union object representing a dimension or metric value. Only one of "primitiveValue" or "conversionPathValue" attribute will be populated.
+ "primitiveValue": "A String", # A primitive metric value. A primitive dimension value.
+ "conversionPathValue": [ # A conversion path dimension value, containing a list of interactions with their attributes.
+ {
+ "nodeValue": "A String", # Node value of an interaction on conversion path. Such as source, medium etc.
+ "interactionType": "A String", # Type of an interaction on conversion path. Such as CLICK, IMPRESSION etc.
+ },
+ ],
+ },
+ ],
+ ],
+ "containsSampledData": True or False, # Determines if the Analytics data contains sampled data.
+ "totalResults": 42, # The total number of rows for the query, regardless of the number of rows in the response.
+ "itemsPerPage": 42, # The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
+ "totalsForAllResults": { # Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.
+ "a_key": "A String", # Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric.
+ },
+ "nextLink": "A String", # Link to next page for this Analytics data query.
+ "id": "A String", # Unique ID for this data response.
+ "query": { # Analytics data request query parameters.
+ "max-results": 42, # Maximum results per page.
+ "sort": [ # List of dimensions or metrics based on which Analytics data is sorted.
+ "A String",
+ ],
+ "dimensions": "A String", # List of analytics dimensions.
+ "start-date": "A String", # Start date.
+ "start-index": 42, # Start index.
+ "segment": "A String", # Analytics advanced segment.
+ "ids": "A String", # Unique table ID.
+ "metrics": [ # List of analytics metrics.
+ "A String",
+ ],
+ "filters": "A String", # Comma-separated list of dimension or metric filters.
+ "end-date": "A String", # End date.
+ },
+ "previousLink": "A String", # Link to previous page for this Analytics data query.
+ "profileInfo": { # Information for the profile, for which the Analytics data was requested.
+ "webPropertyId": "A String", # Web Property ID to which this profile belongs.
+ "internalWebPropertyId": "A String", # Internal ID for the web property to which this profile belongs.
+ "tableId": "A String", # Table ID for profile.
+ "profileId": "A String", # Profile ID.
+ "profileName": "A String", # Profile name.
+ "accountId": "A String", # Account ID to which this profile belongs.
+ },
+ "columnHeaders": [ # Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.
+ {
+ "dataType": "A String", # Data type. Dimension and metric values data types such as INTEGER, DOUBLE, CURRENCY, MCF_SEQUENCE etc.
+ "columnType": "A String", # Column Type. Either DIMENSION or METRIC.
+ "name": "A String", # Column name.
+ },
+ ],
+ "selfLink": "A String", # Link to this page.
+ }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.accounts.html b/docs/dyn/analytics_v3.management.accounts.html
index cf34e63..01d0cab 100644
--- a/docs/dyn/analytics_v3.management.accounts.html
+++ b/docs/dyn/analytics_v3.management.accounts.html
@@ -89,11 +89,11 @@
Returns:
An object of the form:
- {
+ { # An account collection provides a list of Analytics accounts to which a user has access. The account collection is the entry point to all management information. Each resource in the collection corresponds to a single Analytics account.
"username": "A String", # Email ID of the authenticated user
"kind": "analytics#accounts", # Collection type.
"items": [ # A list of accounts.
- {
+ { # JSON template for Analytics account entry.
"kind": "analytics#account", # Resource type for Analytics account.
"name": "A String", # Account name.
"created": "A String", # Time the account was created.
diff --git a/docs/dyn/analytics_v3.management.goals.html b/docs/dyn/analytics_v3.management.goals.html
index 0a7b8ab..8dae66c 100644
--- a/docs/dyn/analytics_v3.management.goals.html
+++ b/docs/dyn/analytics_v3.management.goals.html
@@ -92,11 +92,11 @@
Returns:
An object of the form:
- {
+ { # A goal collection lists Analytics goals to which the user has access. Each profile can have a set of goals. Each resource in the Goal collection corresponds to a single Analytics goal.
"username": "A String", # Email ID of the authenticated user
"kind": "analytics#goals", # Collection type.
"items": [ # A list of goals.
- {
+ { # JSON template for Analytics goal resource.
"kind": "analytics#goal", # Resource type for an Analytics goal.
"visitTimeOnSiteDetails": { # Details for the goal of the type VISIT_TIME_ON_SITE.
"comparisonType": "A String", # Type of comparison. Possible values are LESS_THAN or GREATER_THAN.
diff --git a/docs/dyn/analytics_v3.management.profiles.html b/docs/dyn/analytics_v3.management.profiles.html
index 29ab916..1cf750f 100644
--- a/docs/dyn/analytics_v3.management.profiles.html
+++ b/docs/dyn/analytics_v3.management.profiles.html
@@ -91,11 +91,11 @@
Returns:
An object of the form:
- {
+ { # A profile collection lists Analytics profiles to which the user has access. Each resource in the collection corresponds to a single Analytics profile.
"username": "A String", # Email ID of the authenticated user
"kind": "analytics#profiles", # Collection type.
"items": [ # A list of profiles.
- {
+ { # JSON template for an Analytics profile.
"defaultPage": "A String", # Default page for this profile.
"kind": "analytics#profile", # Resource type for Analytics profile.
"excludeQueryParameters": "A String", # The query parameters that are excluded from this profile.
diff --git a/docs/dyn/analytics_v3.management.segments.html b/docs/dyn/analytics_v3.management.segments.html
index 8e402f0..672be48 100644
--- a/docs/dyn/analytics_v3.management.segments.html
+++ b/docs/dyn/analytics_v3.management.segments.html
@@ -89,11 +89,11 @@
Returns:
An object of the form:
- {
+ { # An advanced segment collection lists Analytics advanced segments that the user has access to. Each resource in the collection corresponds to a single Analytics advanced segment.
"username": "A String", # Email ID of the authenticated user
"kind": "analytics#segments", # Collection type for advanced segments.
"items": [ # A list of advanced segments.
- {
+ { # JSON template for an Analytics advanced segment.
"definition": "A String", # Advanced segment definition.
"kind": "analytics#segment", # Resource type for Analytics advanced segment.
"segmentId": "A String", # Segment ID. Can be used with the 'segment' parameter in Data Feed.
diff --git a/docs/dyn/analytics_v3.management.webproperties.html b/docs/dyn/analytics_v3.management.webproperties.html
index 6a44e63..91d6e5d 100644
--- a/docs/dyn/analytics_v3.management.webproperties.html
+++ b/docs/dyn/analytics_v3.management.webproperties.html
@@ -90,11 +90,11 @@
Returns:
An object of the form:
- {
+ { # A web property collection lists Analytics web properties to which the user has access. Each resource in the collection corresponds to a single Analytics web property.
"username": "A String", # Email ID of the authenticated user
"kind": "analytics#webproperties", # Collection type.
"items": [ # A list of web properties.
- {
+ { # JSON template for an Analytics web property.
"kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
"name": "A String", # Name of this web property.
"created": "A String", # Time this web property was created.
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index 29631bc..6ba9877 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -136,18 +136,19 @@
"configuration": { # [Required] Describes the job configuration.
"load": { # [Pick one] Configures a load job.
"encoding": "A String", # [Optional] Character encoding of the input data. May be UTF-8 or ISO-8859-1. Default is UTF-8.
- "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','. Note that delimiters are applied to the raw, binary data before the encoding is applied.
"destinationTable": { # [Required] Table being written to.
"projectId": "A String", # [Required] ID of the project billed for storage of the table.
"tableId": "A String", # [Required] ID of the table.
"datasetId": "A String", # [Required] ID of the dataset containing the table.
},
- "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
"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.
+ "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
+ "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
"sourceUris": [ # [Required] Source URIs describing Google Cloud Storage locations of data to load.
"A String",
],
- "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
+ "quote": "A String", # [Optional] Quote character to use. Default is '"'. Note that quoting is done on the raw, binary data before the encoding is applied.
"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.
"schemaInlineFormat": "A String", # [Experimental] Format of inlineSchema field.
"schemaInline": "A String", # [Experimental] Inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT"
@@ -312,18 +313,19 @@
"configuration": { # [Required] Describes the job configuration.
"load": { # [Pick one] Configures a load job.
"encoding": "A String", # [Optional] Character encoding of the input data. May be UTF-8 or ISO-8859-1. Default is UTF-8.
- "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','. Note that delimiters are applied to the raw, binary data before the encoding is applied.
"destinationTable": { # [Required] Table being written to.
"projectId": "A String", # [Required] ID of the project billed for storage of the table.
"tableId": "A String", # [Required] ID of the table.
"datasetId": "A String", # [Required] ID of the dataset containing the table.
},
- "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
"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.
+ "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
+ "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
"sourceUris": [ # [Required] Source URIs describing Google Cloud Storage locations of data to load.
"A String",
],
- "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
+ "quote": "A String", # [Optional] Quote character to use. Default is '"'. Note that quoting is done on the raw, binary data before the encoding is applied.
"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.
"schemaInlineFormat": "A String", # [Experimental] Format of inlineSchema field.
"schemaInline": "A String", # [Experimental] Inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT"
@@ -436,18 +438,19 @@
"configuration": { # [Required] Describes the job configuration.
"load": { # [Pick one] Configures a load job.
"encoding": "A String", # [Optional] Character encoding of the input data. May be UTF-8 or ISO-8859-1. Default is UTF-8.
- "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','. Note that delimiters are applied to the raw, binary data before the encoding is applied.
"destinationTable": { # [Required] Table being written to.
"projectId": "A String", # [Required] ID of the project billed for storage of the table.
"tableId": "A String", # [Required] ID of the table.
"datasetId": "A String", # [Required] ID of the dataset containing the table.
},
- "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
"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.
+ "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
+ "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
"sourceUris": [ # [Required] Source URIs describing Google Cloud Storage locations of data to load.
"A String",
],
- "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
+ "quote": "A String", # [Optional] Quote character to use. Default is '"'. Note that quoting is done on the raw, binary data before the encoding is applied.
"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.
"schemaInlineFormat": "A String", # [Experimental] Format of inlineSchema field.
"schemaInline": "A String", # [Experimental] Inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT"
@@ -584,18 +587,19 @@
"configuration": { # [Full-projection-only] Specifies the job configuration.
"load": { # [Pick one] Configures a load job.
"encoding": "A String", # [Optional] Character encoding of the input data. May be UTF-8 or ISO-8859-1. Default is UTF-8.
- "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','
+ "fieldDelimiter": "A String", # [Optional] Delimiter to use between fields in the import data. Default is ','. Note that delimiters are applied to the raw, binary data before the encoding is applied.
"destinationTable": { # [Required] Table being written to.
"projectId": "A String", # [Required] ID of the project billed for storage of the table.
"tableId": "A String", # [Required] ID of the table.
"datasetId": "A String", # [Required] ID of the dataset containing the table.
},
- "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
"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.
+ "maxBadRecords": 42, # [Optional] Maximum number of bad records that should be ignored before the entire job is aborted and no updates are performed.
+ "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
"sourceUris": [ # [Required] Source URIs describing Google Cloud Storage locations of data to load.
"A String",
],
- "skipLeadingRows": 42, # [Optional] Number of rows of initial data to skip in the data being imported.
+ "quote": "A String", # [Optional] Quote character to use. Default is '"'. Note that quoting is done on the raw, binary data before the encoding is applied.
"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.
"schemaInlineFormat": "A String", # [Experimental] Format of inlineSchema field.
"schemaInline": "A String", # [Experimental] Inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT"
diff --git a/docs/dyn/calendar_v3.calendarList.html b/docs/dyn/calendar_v3.calendarList.html
index 0a4cc68..77edf1d 100644
--- a/docs/dyn/calendar_v3.calendarList.html
+++ b/docs/dyn/calendar_v3.calendarList.html
@@ -81,7 +81,7 @@
<code><a href="#get">get(calendarId)</a></code></p>
<p class="firstline">Returns an entry on the user's calendar list.</p>
<p class="toc_element">
- <code><a href="#insert">insert(body)</a></code></p>
+ <code><a href="#insert">insert(body, colorRgbFormat=None)</a></code></p>
<p class="firstline">Adds an entry to the user's calendar list.</p>
<p class="toc_element">
<code><a href="#list">list(minAccessRole=None, maxResults=None, pageToken=None, showHidden=None)</a></code></p>
@@ -90,10 +90,10 @@
<code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
- <code><a href="#patch">patch(calendarId, body)</a></code></p>
+ <code><a href="#patch">patch(calendarId, body, colorRgbFormat=None)</a></code></p>
<p class="firstline">Updates an entry on the user's calendar list. This method supports patch semantics.</p>
<p class="toc_element">
- <code><a href="#update">update(calendarId, body)</a></code></p>
+ <code><a href="#update">update(calendarId, body, colorRgbFormat=None)</a></code></p>
<p class="firstline">Updates an entry on the user's calendar list.</p>
<h3>Method Details</h3>
<div class="method">
@@ -117,6 +117,7 @@
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -132,6 +133,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -145,7 +147,7 @@
</div>
<div class="method">
- <code class="details" id="insert">insert(body)</code>
+ <code class="details" id="insert">insert(body, colorRgbFormat=None)</code>
<pre>Adds an entry to the user's calendar list.
Args:
@@ -154,6 +156,7 @@
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -169,6 +172,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -180,12 +184,14 @@
"id": "A String", # Identifier of the calendar.
}
+ colorRgbFormat: boolean, Whether to use the 'frontendColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'color' field will be set to the best matching option automatically. Optional. The default is False.
Returns:
An object of the form:
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -201,6 +207,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -236,6 +243,7 @@
"items": [ # Calendars that are present on the user's calendar list.
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -251,6 +259,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -282,7 +291,7 @@
</div>
<div class="method">
- <code class="details" id="patch">patch(calendarId, body)</code>
+ <code class="details" id="patch">patch(calendarId, body, colorRgbFormat=None)</code>
<pre>Updates an entry on the user's calendar list. This method supports patch semantics.
Args:
@@ -292,6 +301,7 @@
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -307,6 +317,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -318,12 +329,14 @@
"id": "A String", # Identifier of the calendar.
}
+ colorRgbFormat: boolean, Whether to use the 'frontendColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'color' field will be set to the best matching option automatically. Optional. The default is False.
Returns:
An object of the form:
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -339,6 +352,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -352,7 +366,7 @@
</div>
<div class="method">
- <code class="details" id="update">update(calendarId, body)</code>
+ <code class="details" id="update">update(calendarId, body, colorRgbFormat=None)</code>
<pre>Updates an entry on the user's calendar list.
Args:
@@ -362,6 +376,7 @@
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -377,6 +392,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
@@ -388,12 +404,14 @@
"id": "A String", # Identifier of the calendar.
}
+ colorRgbFormat: boolean, Whether to use the 'frontendColor' and 'backgroundColor' fields to write the calendar colors (RGB). If this feature is used, the index-based 'color' field will be set to the best matching option automatically. Optional. The default is False.
Returns:
An object of the form:
{
"kind": "calendar#calendarListEntry", # Type of the resource ("calendar#calendarListEntry").
+ "foregroundColor": "A String", # The foreground color of the calendar in the format '#ffffff'. This property supersedes the index-based colorId property. Optional.
"defaultReminders": [ # The default reminders that the authenticated user has for this calendar.
{
"minutes": 42, # Number of minutes before the start of the event when the reminder should trigger.
@@ -409,6 +427,7 @@
"summary": "A String", # Title of the calendar. Read-only.
"etag": "A String", # ETag of the resource.
"location": "A String", # Geographic location of the calendar as free-form text. Optional. Read-only.
+ "backgroundColor": "A String", # The main color of the calendar in the format '#0088aa'. This property supersedes the index-based colorId property. Optional.
"summaryOverride": "A String", # The summary that the authenticated user has set for this calendar. Optional.
"timeZone": "A String", # The time zone of the calendar. Optional. Read-only.
"hidden": True or False, # Whether the calendar has been hidden from the list. Optional. The default is False.
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index 135e3df..0230c26 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -210,7 +210,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -223,7 +223,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -338,7 +338,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -351,7 +351,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -460,7 +460,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -473,7 +473,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -588,7 +588,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -601,7 +601,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -711,7 +711,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -724,7 +724,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -862,7 +862,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -875,7 +875,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1048,7 +1048,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1061,7 +1061,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1206,7 +1206,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1219,7 +1219,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1335,7 +1335,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1348,7 +1348,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1459,7 +1459,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1472,7 +1472,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1590,7 +1590,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1603,7 +1603,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1719,7 +1719,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1732,7 +1732,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
@@ -1843,7 +1843,7 @@
"a_key": "A String", # The name of the private property and the corresponding value.
},
},
- "endTimeUnspecified": True or False,
+ "endTimeUnspecified": True or False, # Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
"sequence": 42, # Sequence number as per iCalendar.
"visibility": "A String", # Visibility of the event. Optional. Possible values are:
# - "default" - Uses the default visibility for events on the calendar. This is the default value.
@@ -1856,7 +1856,7 @@
"timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). Optional. The default is the time zone of the calendar.
"dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in 'timeZone'.
},
- "attendeesOmitted": True or False, # Whether attendees have been omitted from the event's representation. When retrieving an event, this is due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
+ "attendeesOmitted": True or False, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the 'maxAttendee' query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
"kind": "calendar#event", # Type of the resource ("calendar#event").
"locked": True or False, # Whether this is a locked event copy where no changes can be made to the main event fields "summary", "description", "location", "start", "end" or "recurrence". The default is False. Read-Only.
"created": "A String", # Creation time of the event (as a RFC 3339 timestamp). Read-only.
diff --git a/docs/dyn/drive_v2.about.html b/docs/dyn/drive_v2.about.html
index 753a5ee..168fad3 100644
--- a/docs/dyn/drive_v2.about.html
+++ b/docs/dyn/drive_v2.about.html
@@ -100,7 +100,7 @@
],
"quotaBytesUsed": "A String", # The number of quota bytes used.
"permissionId": "A String", # The current user's ID as visible in the permissions collection.
- "maxUploadSizes": [ # List of max upload sizes for each file type.
+ "maxUploadSizes": [ # List of max upload sizes for each file type. The most specific type takes precedence.
{
"type": "A String", # The file type.
"size": "A String", # The max upload size for this type.
@@ -108,17 +108,17 @@
],
"name": "A String", # The name of the current user.
"remainingChangeIds": "A String", # The number of remaining change ids.
- "additionalRoleInfo": [ # Additional ACL role info.
+ "additionalRoleInfo": [ # Information about supported additional roles per file type. The most specific type takes precedence.
{
- "roleSets": [ # The role sets for this role info item.
+ "roleSets": [ # The supported additional roles per primary role.
{
- "primaryRole": "A String", # The primary role for this role set.
- "additionalRoles": [ # The list of additional roles for this role set.
+ "primaryRole": "A String", # A primary permission role.
+ "additionalRoles": [ # The supported additional roles with the primary role.
"A String",
],
},
],
- "type": "A String", # The content type for this ACL role info item.
+ "type": "A String", # The content type that this additional role info applies to.
},
],
"etag": "A String", # The ETag of the item.
diff --git a/docs/dyn/drive_v2.apps.html b/docs/dyn/drive_v2.apps.html
index bc64535..7dd4afe 100644
--- a/docs/dyn/drive_v2.apps.html
+++ b/docs/dyn/drive_v2.apps.html
@@ -75,10 +75,59 @@
<h1><a href="drive_v2.html">Drive API</a> . <a href="drive_v2.apps.html">apps</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
+ <code><a href="#get">get(appId)</a></code></p>
+<p class="firstline">Gets a specific app.</p>
+<p class="toc_element">
<code><a href="#list">list()</a></code></p>
<p class="firstline">Lists a user's apps.</p>
<h3>Method Details</h3>
<div class="method">
+ <code class="details" id="get">get(appId)</code>
+ <pre>Gets a specific app.
+
+Args:
+ appId: string, The ID of the app. (required)
+
+Returns:
+ An object of the form:
+
+ { # Information about a third-party application which the user has installed or given access to Google Drive.
+ "kind": "drive#app", # This is always drive#app.
+ "primaryFileExtensions": [ # The list of primary file extensions.
+ "A String",
+ ],
+ "useByDefault": True or False, # Whether the app is selected as the default handler for the types it supports.
+ "name": "A String", # The name of the app.
+ "icons": [ # The various icons for the app.
+ {
+ "category": "A String", # Category of the icon. Allowed values are:
+ # - application - icon for the application
+ # - document - icon for a file associated with the app
+ # - documentShared - icon for a shared file associated with the app
+ "iconUrl": "A String", # URL for the icon.
+ "size": 42, # Size of the icon. Represented as the maximum of the width and height.
+ },
+ ],
+ "secondaryFileExtensions": [ # The list of secondary file extensions.
+ "A String",
+ ],
+ "installed": True or False, # Whether the app is installed.
+ "productUrl": "A String", # The product URL.
+ "secondaryMimeTypes": [ # The list of secondary mime types.
+ "A String",
+ ],
+ "authorized": True or False, # Whether the app is authorized to access data on the user's Drive.
+ "supportsCreate": True or False, # Whether this app supports creating new objects.
+ "supportsImport": True or False, # Whether this app supports importing Google Docs.
+ "primaryMimeTypes": [ # The list of primary mime types.
+ "A String",
+ ],
+ "id": "A String", # The ID of the app.
+ "objectType": "A String", # The name of the type of object this app creates.
+ }</pre>
+</div>
+
+<div class="method">
<code class="details" id="list">list()</code>
<pre>Lists a user's apps.
@@ -94,6 +143,7 @@
"primaryFileExtensions": [ # The list of primary file extensions.
"A String",
],
+ "useByDefault": True or False, # Whether the app is selected as the default handler for the types it supports.
"name": "A String", # The name of the app.
"icons": [ # The various icons for the app.
{
diff --git a/docs/dyn/drive_v2.changes.html b/docs/dyn/drive_v2.changes.html
index c470345..609d385 100644
--- a/docs/dyn/drive_v2.changes.html
+++ b/docs/dyn/drive_v2.changes.html
@@ -98,7 +98,7 @@
"kind": "drive#change", # This is always drive#change.
"deleted": True or False, # Whether the file has been deleted.
"file": { # The metadata for a file. # The updated state of the file. Present if the file has not been deleted.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -110,6 +110,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -133,18 +134,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -169,9 +180,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
},
"id": "A String", # The ID of the change.
"selfLink": "A String", # A link back to this change.
@@ -201,7 +212,7 @@
"kind": "drive#change", # This is always drive#change.
"deleted": True or False, # Whether the file has been deleted.
"file": { # The metadata for a file. # The updated state of the file. Present if the file has not been deleted.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -213,6 +224,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -236,18 +248,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -272,9 +294,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
},
"id": "A String", # The ID of the change.
"selfLink": "A String", # A link back to this change.
diff --git a/docs/dyn/drive_v2.files.html b/docs/dyn/drive_v2.files.html
index da611fd..c234e1a 100644
--- a/docs/dyn/drive_v2.files.html
+++ b/docs/dyn/drive_v2.files.html
@@ -118,7 +118,7 @@
The object takes the form of:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -130,6 +130,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -153,18 +154,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -189,9 +200,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}
pinned: boolean, Whether to pin the head revision of the new copy.
@@ -207,7 +218,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -219,6 +230,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -242,18 +254,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -278,9 +300,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -299,17 +321,17 @@
Args:
fileId: string, The ID for the file in question. (required)
- projection: string, Restrict information returned for simplicity and optimization.
+ projection: string, This parameter is deprecated and has no function.
Allowed values
- BASIC - Includes only the basic metadata fields
- FULL - Includes all metadata fields
+ BASIC - Deprecated
+ FULL - Deprecated
updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
Returns:
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -321,6 +343,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -344,18 +367,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -380,9 +413,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -395,7 +428,7 @@
The object takes the form of:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -407,6 +440,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -430,18 +464,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -466,9 +510,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}
media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
@@ -485,7 +529,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -497,6 +541,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -520,18 +565,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -556,9 +611,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -568,10 +623,10 @@
Args:
q: string, Query string for searching files.
- projection: string, Restrict information returned for simplicity and optimization.
+ projection: string, This parameter is deprecated and has no function.
Allowed values
- BASIC - Includes only the basic metadata fields
- FULL - Includes all metadata fields
+ BASIC - Deprecated
+ FULL - Deprecated
pageToken: string, Page token for files.
maxResults: integer, Maximum number of files to return.
@@ -583,7 +638,7 @@
"kind": "drive#fileList", # This is always drive#fileList.
"items": [ # The actual list of files.
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -595,6 +650,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -618,18 +674,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -654,9 +720,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
},
],
"nextLink": "A String", # A link to the next page of files.
@@ -689,7 +755,7 @@
The object takes the form of:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -701,6 +767,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -724,18 +791,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -760,9 +837,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}
newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision will be replaced.
@@ -781,7 +858,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -793,6 +870,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -816,18 +894,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -852,9 +940,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -869,7 +957,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -881,6 +969,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -904,18 +993,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -940,9 +1039,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -957,7 +1056,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -969,6 +1068,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -992,18 +1092,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -1028,9 +1138,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -1045,7 +1155,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -1057,6 +1167,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -1080,18 +1191,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -1116,9 +1237,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
@@ -1132,7 +1253,7 @@
The object takes the form of:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -1144,6 +1265,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -1167,18 +1289,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -1203,9 +1335,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}
newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision will be replaced.
@@ -1225,7 +1357,7 @@
An object of the form:
{ # The metadata for a file.
- "mimeType": "A String", # The MIME type of the file.
+ "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
"thumbnailLink": "A String", # A link to the file's thumbnail.
"labels": { # A group of labels for the file.
"restricted": True or False, # Whether viewers are prevented from downloading this file.
@@ -1237,6 +1369,7 @@
"indexableText": { # Indexable text attributes for the file (can only be written)
"text": "A String", # The text to be indexed for this file
},
+ "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed. This will only be populated if the file is trashed.
"etag": "A String", # ETag of the file.
"lastModifyingUserName": "A String", # Name of the last user to modify this file. This will only be populated if a user has edited this file.
"writersCanShare": True or False, # Whether writers can share the document with other users.
@@ -1260,18 +1393,28 @@
"exportLinks": { # Links for exporting Google Docs to specific formats.
"a_key": "A String", # A mapping from export format to URL
},
- "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
+ "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This will only be populated on files with content stored in Drive.
"description": "A String", # A short description of the file.
+ "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
"editable": True or False, # Whether the file can be edited by the current user.
"kind": "drive#file", # The type of file. This is always drive#file.
"quotaBytesUsed": "A String", # The number of quota bytes used by this file.
"fileSize": "A String", # The size of the file in bytes. This will only be populated on files with content stored in Drive.
"createdDate": "A String", # Create time for this file (formatted ISO8601 timestamp).
"md5Checksum": "A String", # An MD5 checksum for the content of this file. This will only be populated on files with content stored in Drive.
+ "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
+ "width": 42, # The width of the image in pixels.
+ "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
+ "location": { # Geographic location information stored in the image.
+ "latitude": 3.14, # The latitude stored in the image.
+ "altitude": 3.14, # The altitude stored in the image.
+ "longitude": 3.14, # The longitude stored in the image.
+ },
+ "height": 42, # The height of the image in pixels.
+ },
"embedLink": "A String", # A link for embedding the file.
- "alternateLink": "A String", # A link for opening the file in a browser.
- "permissionsLink": "A String", # A link to the permissions collection.
- "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp).
+ "alternateLink": "A String", # A link for opening the file in using a relevant Google editor or viewer.
+ "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"userPermission": { # A single permission for a file. # The permissions for the authenticated user on this file.
"withLink": True or False, # Whether the link is required for this permission.
@@ -1296,9 +1439,9 @@
],
"selfLink": "A String", # A link back to this permission.
},
- "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.
+ "fileExtension": "A String", # The file extension used when downloading this file. This field is set from the title when inserting or uploading new content. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this file.
- "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
+ "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}</pre>
</div>
diff --git a/docs/dyn/drive_v2.revisions.html b/docs/dyn/drive_v2.revisions.html
index 686988e..e7b12a9 100644
--- a/docs/dyn/drive_v2.revisions.html
+++ b/docs/dyn/drive_v2.revisions.html
@@ -113,12 +113,12 @@
{ # A single revision of a file.
"mimeType": "A String", # The MIME type of the revision.
- "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated on files with content stored in Drive.
+ "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
"kind": "drive#revision", # This is always drive#revision.
"publishedLink": "A String", # A link to the published revision.
- "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain.
- "publishAuto": True or False, # Whether subsequent revisions will be automatically republished.
- "published": True or False, # Whether this revision is published. This is only populated for Google Docs.
+ "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+ "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+ "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this revision.
"etag": "A String", # The ETag of the revision.
@@ -148,12 +148,12 @@
"items": [ # The actual list of revisions.
{ # A single revision of a file.
"mimeType": "A String", # The MIME type of the revision.
- "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated on files with content stored in Drive.
+ "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
"kind": "drive#revision", # This is always drive#revision.
"publishedLink": "A String", # A link to the published revision.
- "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain.
- "publishAuto": True or False, # Whether subsequent revisions will be automatically republished.
- "published": True or False, # Whether this revision is published. This is only populated for Google Docs.
+ "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+ "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+ "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this revision.
"etag": "A String", # The ETag of the revision.
@@ -186,12 +186,12 @@
{ # A single revision of a file.
"mimeType": "A String", # The MIME type of the revision.
- "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated on files with content stored in Drive.
+ "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
"kind": "drive#revision", # This is always drive#revision.
"publishedLink": "A String", # A link to the published revision.
- "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain.
- "publishAuto": True or False, # Whether subsequent revisions will be automatically republished.
- "published": True or False, # Whether this revision is published. This is only populated for Google Docs.
+ "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+ "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+ "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this revision.
"etag": "A String", # The ETag of the revision.
@@ -212,12 +212,12 @@
{ # A single revision of a file.
"mimeType": "A String", # The MIME type of the revision.
- "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated on files with content stored in Drive.
+ "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
"kind": "drive#revision", # This is always drive#revision.
"publishedLink": "A String", # A link to the published revision.
- "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain.
- "publishAuto": True or False, # Whether subsequent revisions will be automatically republished.
- "published": True or False, # Whether this revision is published. This is only populated for Google Docs.
+ "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+ "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+ "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this revision.
"etag": "A String", # The ETag of the revision.
@@ -245,12 +245,12 @@
{ # A single revision of a file.
"mimeType": "A String", # The MIME type of the revision.
- "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated on files with content stored in Drive.
+ "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
"kind": "drive#revision", # This is always drive#revision.
"publishedLink": "A String", # A link to the published revision.
- "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain.
- "publishAuto": True or False, # Whether subsequent revisions will be automatically republished.
- "published": True or False, # Whether this revision is published. This is only populated for Google Docs.
+ "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+ "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+ "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this revision.
"etag": "A String", # The ETag of the revision.
@@ -271,12 +271,12 @@
{ # A single revision of a file.
"mimeType": "A String", # The MIME type of the revision.
- "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated on files with content stored in Drive.
+ "pinned": True or False, # Whether this revision is pinned to prevent automatic purging. This will only be populated and can only be modified on files with content stored in Drive which are not Google Docs. Revisions can also be pinned when they are created through the drive.files.insert/update/copy by using the pinned query parameter.
"kind": "drive#revision", # This is always drive#revision.
"publishedLink": "A String", # A link to the published revision.
- "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain.
- "publishAuto": True or False, # Whether subsequent revisions will be automatically republished.
- "published": True or False, # Whether this revision is published. This is only populated for Google Docs.
+ "publishedOutsideDomain": True or False, # Whether this revision is published outside the domain. This is only populated and can only be modified for Google Docs.
+ "publishAuto": True or False, # Whether subsequent revisions will be automatically republished. This is only populated and can only be modified for Google Docs.
+ "published": True or False, # Whether this revision is published. This is only populated and can only be modified for Google Docs.
"downloadUrl": "A String", # Short term download URL for the file. This will only be populated on files with content stored in Drive.
"selfLink": "A String", # A link back to this revision.
"etag": "A String", # The ETag of the revision.
diff --git a/docs/dyn/fusiontables_v1.table.html b/docs/dyn/fusiontables_v1.table.html
index 6bfdddc..2709f64 100644
--- a/docs/dyn/fusiontables_v1.table.html
+++ b/docs/dyn/fusiontables_v1.table.html
@@ -124,6 +124,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -158,6 +159,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -187,6 +189,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -227,6 +230,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -279,6 +283,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -309,6 +314,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -344,6 +350,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
@@ -374,6 +381,7 @@
"A String",
],
"attributionLink": "A String", # Optional link for attribution.
+ "sql": "A String", # Optional sql that encodes the table definition for derived tables.
"tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
"columns": [ # Columns in the table.
{ # Specifies the id, name and type of a column in a table.
diff --git a/docs/dyn/gan_v1beta1.advertisers.html b/docs/dyn/gan_v1beta1.advertisers.html
index a5ac756..e88b477 100644
--- a/docs/dyn/gan_v1beta1.advertisers.html
+++ b/docs/dyn/gan_v1beta1.advertisers.html
@@ -107,6 +107,7 @@
"contactPhone": "A String", # Phone that this advertiser would like publishers to contact them with.
"description": "A String", # Description of the website the advertiser advertises from.
"payoutRank": "A String", # A rank based on commissions paid to publishers over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid).
+ "defaultLinkId": "A String", # The default link id for this advertiser.
"epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes.
"amount": 3.14, # The amount of money.
"currencyCode": "A String", # The 3-letter code of the currency in question.
@@ -165,6 +166,7 @@
"contactPhone": "A String", # Phone that this advertiser would like publishers to contact them with.
"description": "A String", # Description of the website the advertiser advertises from.
"payoutRank": "A String", # A rank based on commissions paid to publishers over the past 90 days. A number between 1 and 4 where 4 means the top quartile (most money paid) and 1 means the bottom quartile (least money paid).
+ "defaultLinkId": "A String", # The default link id for this advertiser.
"epcSevenDayAverage": { # An ApiMoneyProto. # The sum of fees paid to publishers divided by the total number of clicks over the past seven days. Values are multiplied by 100 for display purposes.
"amount": 3.14, # The amount of money.
"currencyCode": "A String", # The 3-letter code of the currency in question.
diff --git a/docs/dyn/gan_v1beta1.links.html b/docs/dyn/gan_v1beta1.links.html
index ad2106a..ae6a889 100644
--- a/docs/dyn/gan_v1beta1.links.html
+++ b/docs/dyn/gan_v1beta1.links.html
@@ -103,21 +103,23 @@
An object of the form:
{ # A LinkResource.
- "startDate": "A String", # Date that this link becomes active.
+ "isActive": True or False, # Flag for if this link is active.
+ "linkType": "A String", # The link type.
"kind": "gan#link", # The kind for one entity.
"endDate": "A String", # Date that this link becomes inactive.
"description": "A String", # Description.
"name": "A String", # The logical name for this link.
+ "startDate": "A String", # Date that this link becomes active.
"createDate": "A String", # Date that this link was created.
"imageAltText": "A String", # image alt text.
"id": "A String", # The ID of this link.
"advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
- "creativeType": "A String", # Creative Type.
+ "impressionTrackingUrl": "A String", # Tracking url for impressions.
"promotionType": "A String", # Promotion Type
"duration": "A String", # Duration
"authorship": "A String", # Authorship
"availability": "A String", # Availability.
- "isActive": True or False, # Flag for if this link is active.
+ "clickTrackingUrl": "A String", # Tracking url for clicks.
"destinationUrl": "A String", # The destination URL for the link.
}</pre>
</div>
@@ -136,21 +138,23 @@
The object takes the form of:
{ # A LinkResource.
- "startDate": "A String", # Date that this link becomes active.
+ "isActive": True or False, # Flag for if this link is active.
+ "linkType": "A String", # The link type.
"kind": "gan#link", # The kind for one entity.
"endDate": "A String", # Date that this link becomes inactive.
"description": "A String", # Description.
"name": "A String", # The logical name for this link.
+ "startDate": "A String", # Date that this link becomes active.
"createDate": "A String", # Date that this link was created.
"imageAltText": "A String", # image alt text.
"id": "A String", # The ID of this link.
"advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
- "creativeType": "A String", # Creative Type.
+ "impressionTrackingUrl": "A String", # Tracking url for impressions.
"promotionType": "A String", # Promotion Type
"duration": "A String", # Duration
"authorship": "A String", # Authorship
"availability": "A String", # Availability.
- "isActive": True or False, # Flag for if this link is active.
+ "clickTrackingUrl": "A String", # Tracking url for clicks.
"destinationUrl": "A String", # The destination URL for the link.
}
@@ -159,21 +163,23 @@
An object of the form:
{ # A LinkResource.
- "startDate": "A String", # Date that this link becomes active.
+ "isActive": True or False, # Flag for if this link is active.
+ "linkType": "A String", # The link type.
"kind": "gan#link", # The kind for one entity.
"endDate": "A String", # Date that this link becomes inactive.
"description": "A String", # Description.
"name": "A String", # The logical name for this link.
+ "startDate": "A String", # Date that this link becomes active.
"createDate": "A String", # Date that this link was created.
"imageAltText": "A String", # image alt text.
"id": "A String", # The ID of this link.
"advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
- "creativeType": "A String", # Creative Type.
+ "impressionTrackingUrl": "A String", # Tracking url for impressions.
"promotionType": "A String", # Promotion Type
"duration": "A String", # Duration
"authorship": "A String", # Authorship
"availability": "A String", # Availability.
- "isActive": True or False, # Flag for if this link is active.
+ "clickTrackingUrl": "A String", # Tracking url for clicks.
"destinationUrl": "A String", # The destination URL for the link.
}</pre>
</div>
@@ -270,21 +276,23 @@
"nextPageToken": "A String", # The next page token.
"items": [ # The links.
{ # A LinkResource.
- "startDate": "A String", # Date that this link becomes active.
+ "isActive": True or False, # Flag for if this link is active.
+ "linkType": "A String", # The link type.
"kind": "gan#link", # The kind for one entity.
"endDate": "A String", # Date that this link becomes inactive.
"description": "A String", # Description.
"name": "A String", # The logical name for this link.
+ "startDate": "A String", # Date that this link becomes active.
"createDate": "A String", # Date that this link was created.
"imageAltText": "A String", # image alt text.
"id": "A String", # The ID of this link.
"advertiserId": "A String", # The advertiser id for the advertiser who owns this link.
- "creativeType": "A String", # Creative Type.
+ "impressionTrackingUrl": "A String", # Tracking url for impressions.
"promotionType": "A String", # Promotion Type
"duration": "A String", # Duration
"authorship": "A String", # Authorship
"availability": "A String", # Availability.
- "isActive": True or False, # Flag for if this link is active.
+ "clickTrackingUrl": "A String", # Tracking url for clicks.
"destinationUrl": "A String", # The destination URL for the link.
},
],
diff --git a/docs/dyn/groupssettings_v1.groups.html b/docs/dyn/groupssettings_v1.groups.html
index de04471..483d217 100644
--- a/docs/dyn/groupssettings_v1.groups.html
+++ b/docs/dyn/groupssettings_v1.groups.html
@@ -94,7 +94,7 @@
Returns:
An object of the form:
- { # Groups resource
+ { # JSON template for Group resource
"allowExternalMembers": "A String", # Are external members allowed to join the group.
"whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
"primaryLanguage": "A String", # Primary language for the group.
@@ -131,7 +131,7 @@
body: object, The request body. (required)
The object takes the form of:
-{ # Groups resource
+{ # JSON template for Group resource
"allowExternalMembers": "A String", # Are external members allowed to join the group.
"whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
"primaryLanguage": "A String", # Primary language for the group.
@@ -162,7 +162,7 @@
Returns:
An object of the form:
- { # Groups resource
+ { # JSON template for Group resource
"allowExternalMembers": "A String", # Are external members allowed to join the group.
"whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
"primaryLanguage": "A String", # Primary language for the group.
@@ -199,7 +199,7 @@
body: object, The request body. (required)
The object takes the form of:
-{ # Groups resource
+{ # JSON template for Group resource
"allowExternalMembers": "A String", # Are external members allowed to join the group.
"whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
"primaryLanguage": "A String", # Primary language for the group.
@@ -230,7 +230,7 @@
Returns:
An object of the form:
- { # Groups resource
+ { # JSON template for Group resource
"allowExternalMembers": "A String", # Are external members allowed to join the group.
"whoCanJoin": "A String", # Permissions to join the group. Possible values are: ANYONE_CAN_JOIN ALL_IN_DOMAIN_CAN_JOIN INVITED_CAN_JOIN CAN_REQUEST_TO_JOIN
"primaryLanguage": "A String", # Primary language for the group.
diff --git a/docs/epy/api-objects.txt b/docs/epy/api-objects.txt
index 79c163a..19de795 100644
--- a/docs/epy/api-objects.txt
+++ b/docs/epy/api-objects.txt
@@ -105,6 +105,8 @@
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.keyring_storage oauth2client.keyring_storage-module.html
+oauth2client.keyring_storage.__package__ oauth2client.keyring_storage-module.html#__package__
oauth2client.locked_file oauth2client.locked_file-module.html
oauth2client.locked_file._Win32Opener oauth2client.locked_file-module.html#_Win32Opener
oauth2client.locked_file.logger oauth2client.locked_file-module.html#logger
@@ -119,6 +121,11 @@
oauth2client.tools.run oauth2client.tools-module.html#run
oauth2client.tools.FLAGS oauth2client.tools-module.html#FLAGS
oauth2client.tools.__package__ oauth2client.tools-module.html#__package__
+oauth2client.util oauth2client.util-module.html
+oauth2client.util.__package__ oauth2client.util-module.html#__package__
+oauth2client.util.positional oauth2client.util-module.html#positional
+oauth2client.util.FLAGS oauth2client.util-module.html#FLAGS
+oauth2client.util.logger oauth2client.util-module.html#logger
apiclient.errors.BatchError apiclient.errors.BatchError-class.html
apiclient.errors.BatchError.__str__ apiclient.errors.BatchError-class.html#__str__
apiclient.errors.BatchError.__repr__ apiclient.errors.BatchError-class.html#__repr__
@@ -509,12 +516,14 @@
oauth2client.crypt.Verifier.__init__ oauth2client.crypt.Verifier-class.html#__init__
oauth2client.django_orm.CredentialsField oauth2client.django_orm.CredentialsField-class.html
oauth2client.django_orm.CredentialsField.__metaclass__ django.db.models.fields.subclassing.SubfieldBase-class.html
+oauth2client.django_orm.CredentialsField.__init__ oauth2client.django_orm.CredentialsField-class.html#__init__
oauth2client.django_orm.CredentialsField.get_internal_type oauth2client.django_orm.CredentialsField-class.html#get_internal_type
oauth2client.django_orm.CredentialsField.get_db_prep_value oauth2client.django_orm.CredentialsField-class.html#get_db_prep_value
oauth2client.django_orm.CredentialsField.to_python oauth2client.django_orm.CredentialsField-class.html#to_python
oauth2client.django_orm.CredentialsField.contribute_to_class oauth2client.django_orm.CredentialsField-class.html#contribute_to_class
oauth2client.django_orm.FlowField oauth2client.django_orm.FlowField-class.html
oauth2client.django_orm.FlowField.__metaclass__ django.db.models.fields.subclassing.SubfieldBase-class.html
+oauth2client.django_orm.FlowField.__init__ oauth2client.django_orm.FlowField-class.html#__init__
oauth2client.django_orm.FlowField.get_internal_type oauth2client.django_orm.FlowField-class.html#get_internal_type
oauth2client.django_orm.FlowField.get_db_prep_value oauth2client.django_orm.FlowField-class.html#get_db_prep_value
oauth2client.django_orm.FlowField.to_python oauth2client.django_orm.FlowField-class.html#to_python
@@ -540,6 +549,16 @@
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.keyring_storage.Storage oauth2client.keyring_storage.Storage-class.html
+oauth2client.keyring_storage.Storage.acquire_lock oauth2client.keyring_storage.Storage-class.html#acquire_lock
+oauth2client.keyring_storage.Storage.locked_put oauth2client.keyring_storage.Storage-class.html#locked_put
+oauth2client.keyring_storage.Storage.__init__ oauth2client.keyring_storage.Storage-class.html#__init__
+oauth2client.keyring_storage.Storage.locked_delete oauth2client.keyring_storage.Storage-class.html#locked_delete
+oauth2client.keyring_storage.Storage.locked_get oauth2client.keyring_storage.Storage-class.html#locked_get
+oauth2client.client.Storage.get oauth2client.client.Storage-class.html#get
+oauth2client.client.Storage.put oauth2client.client.Storage-class.html#put
+oauth2client.keyring_storage.Storage.release_lock oauth2client.keyring_storage.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
diff --git a/docs/epy/apiclient-module.html b/docs/epy/apiclient-module.html
index 638a7b1..f0151da 100644
--- a/docs/epy/apiclient-module.html
+++ b/docs/epy/apiclient-module.html
@@ -140,7 +140,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 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 1bc129d..382e169 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 Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.contrib-module.html b/docs/epy/apiclient.contrib-module.html
index d911768..e47a2a2 100644
--- a/docs/epy/apiclient.contrib-module.html
+++ b/docs/epy/apiclient.contrib-module.html
@@ -126,7 +126,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.contrib.latitude-module.html b/docs/epy/apiclient.contrib.latitude-module.html
index a5ca757..45e96ba 100644
--- a/docs/epy/apiclient.contrib.latitude-module.html
+++ b/docs/epy/apiclient.contrib.latitude-module.html
@@ -102,7 +102,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.contrib.moderator-module.html b/docs/epy/apiclient.contrib.moderator-module.html
index 9d42c3a..ccfd8fa 100644
--- a/docs/epy/apiclient.contrib.moderator-module.html
+++ b/docs/epy/apiclient.contrib.moderator-module.html
@@ -102,7 +102,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 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 516259c..e976d76 100644
--- a/docs/epy/apiclient.discovery-module.html
+++ b/docs/epy/apiclient.discovery-module.html
@@ -750,7 +750,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 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 33e4ffe..49dbab2 100644
--- a/docs/epy/apiclient.discovery-pysrc.html
+++ b/docs/epy/apiclient.discovery-pysrc.html
@@ -117,12 +117,13 @@
<a name="L59"></a><tt class="py-lineno"> 59</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="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-40" class="py-name" targets="Package oauth2client=oauth2client-module.html"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-40', 'oauth2client', 'link-40');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-41', 'anyjson', 'link-41');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </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.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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
+<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.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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,Variable oauth2client.util.logger=oauth2client.util-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-42');">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.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-42', 'logger', 'link-42');">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="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </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.URITEMPLATE=apiclient.discovery-module.html#URITEMPLATE"><a title="apiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-43', 'URITEMPLATE', 'link-43');">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="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt id="link-44" 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-44', 'VARNAME', 'link-44');">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>
@@ -256,7 +257,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-55', 'logger', 'link-42');">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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-55', 'logger', 'link-42');">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="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> </tt>
<a name="L191"></a><tt class="py-lineno">191</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-56" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-56', 'http', 'link-20');">http</a></tt><tt class="py-op">.</tt><tt id="link-57" 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
@@ -278,7 +280,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-61', 'logger', 'link-42');">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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-61', 'logger', 'link-42');">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="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-62" class="py-name"><a title="apiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-62', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> </tt>
<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-63" 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-63', 'build_from_document', 'link-63');">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-64" class="py-name"><a title="apiclient.http
@@ -759,7 +762,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-141', 'logger', 'link-42');">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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-141', 'logger', 'link-42');">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="L585"></a><tt class="py-lineno">585</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="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt id="link-142" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-142', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-143" 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-143', 'response', 'link-143');">response</a></tt><tt class="py-op">,</tt> </tt>
@@ -913,7 +917,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-164', 'logger', 'link-42');">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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-164', 'logger', 'link-42');">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="L697"></a><tt class="py-lineno">697</tt> <tt class="py-line"> </tt>
<a name="L698"></a><tt class="py-lineno">698</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-165" class="py-name"><a title="apiclient.http.HttpMock.request
apiclient.http.HttpMockSequence.request
@@ -1018,7 +1023,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 202c612..92bfd08 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 5f9f6b9..e898c70 100644
--- a/docs/epy/apiclient.errors-pysrc.html
+++ b/docs/epy/apiclient.errors-pysrc.html
@@ -96,81 +96,76 @@
</div><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
<a name="HttpError._get_reason"></a><div id="HttpError._get_reason-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="HttpError._get_reason-toggle" onclick="return toggle('HttpError._get_reason');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.HttpError-class.html#_get_reason">_get_reason</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="HttpError._get_reason-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError._get_reason-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-docstring">"""Calculate the reason for the error from the response content."""</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</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">resp</tt><tt class="py-op">.</tt><tt id="link-2" 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-2', 'get', 'link-2');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">startswith</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="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</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-3" 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-3', 'loads', 'link-3');">loads</a></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>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'message'</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">except</tt> <tt class="py-op">(</tt><tt class="py-name">ValueError</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="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <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">content</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-keyword">else</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">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-name">reason</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">reason</tt> </tt>
-</div><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> </tt>
-<a name="HttpError.__repr__"></a><div id="HttpError.__repr__-def"><a name="L54"></a><tt class="py-lineno"> 54</tt> <a class="py-toggle" href="#" id="HttpError.__repr__-toggle" onclick="return toggle('HttpError.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.HttpError-class.html#__repr__">__repr__</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="HttpError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError.__repr__-expanded"><a name="L55"></a><tt class="py-lineno"> 55</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">uri</tt><tt class="py-op">:</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<HttpError %s when requesting %s returned "%s">'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</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">status</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 id="link-4" class="py-name" targets="Method apiclient.errors.HttpError._get_reason()=apiclient.errors.HttpError-class.html#_get_reason"><a title="apiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-4', '_get_reason', 'link-4');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<HttpError %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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</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="apiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-5', '_get_reason', 'link-4');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <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-name">reason</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</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-2" 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-2', 'loads', 'link-2');">loads</a></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>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'message'</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">except</tt> <tt class="py-op">(</tt><tt class="py-name">ValueError</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="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">reason</tt> </tt>
+</div><a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> </tt>
+<a name="HttpError.__repr__"></a><div id="HttpError.__repr__-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="HttpError.__repr__-toggle" onclick="return toggle('HttpError.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.HttpError-class.html#__repr__">__repr__</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="HttpError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError.__repr__-expanded"><a name="L53"></a><tt class="py-lineno"> 53</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">uri</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<HttpError %s when requesting %s returned "%s">'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</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">status</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 id="link-3" class="py-name" targets="Method apiclient.errors.HttpError._get_reason()=apiclient.errors.HttpError-class.html#_get_reason"><a title="apiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-3', '_get_reason', 'link-3');">_get_reason</a></tt><tt class="py-op">(</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 class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</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-string">'<HttpError %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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="apiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-4', '_get_reason', 'link-3');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name" targets="Method apiclient.errors.BatchError.__repr__()=apiclient.errors.BatchError-class.html#__repr__,Method apiclient.errors.HttpError.__repr__()=apiclient.errors.HttpError-class.html#__repr__"><a title="apiclient.errors.BatchError.__repr__
+apiclient.errors.HttpError.__repr__" class="py-name" href="#" onclick="return doclink('link-5', '__repr__', 'link-5');">__repr__</a></tt> </tt>
</div><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 class="py-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name" targets="Method apiclient.errors.BatchError.__repr__()=apiclient.errors.BatchError-class.html#__repr__,Method apiclient.errors.HttpError.__repr__()=apiclient.errors.HttpError-class.html#__repr__"><a title="apiclient.errors.BatchError.__repr__
-apiclient.errors.HttpError.__repr__" class="py-name" href="#" onclick="return doclink('link-6', '__repr__', 'link-6');">__repr__</a></tt> </tt>
-</div><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>
-<a name="InvalidJsonError"></a><div id="InvalidJsonError-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="InvalidJsonError-toggle" onclick="return toggle('InvalidJsonError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.InvalidJsonError-class.html">InvalidJsonError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidJsonError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidJsonError-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-docstring">"""The JSON returned could not be parsed."""</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
-<a name="UnknownLinkType"></a><div id="UnknownLinkType-def"><a name="L69"></a><tt class="py-lineno"> 69</tt> <a class="py-toggle" href="#" id="UnknownLinkType-toggle" onclick="return toggle('UnknownLinkType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnknownLinkType-class.html">UnknownLinkType</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnknownLinkType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownLinkType-expanded"><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-docstring">"""Link type unknown or unexpected."""</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><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>
-<a name="UnknownApiNameOrVersion"></a><div id="UnknownApiNameOrVersion-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="UnknownApiNameOrVersion-toggle" onclick="return toggle('UnknownApiNameOrVersion');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnknownApiNameOrVersion-class.html">UnknownApiNameOrVersion</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnknownApiNameOrVersion-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownApiNameOrVersion-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-docstring">"""No API with that name and version exists."""</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><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="UnacceptableMimeTypeError"></a><div id="UnacceptableMimeTypeError-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="UnacceptableMimeTypeError-toggle" onclick="return toggle('UnacceptableMimeTypeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnacceptableMimeTypeError-class.html">UnacceptableMimeTypeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnacceptableMimeTypeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnacceptableMimeTypeError-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-docstring">"""That is an unacceptable mimetype for this operation."""</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
-<a name="MediaUploadSizeError"></a><div id="MediaUploadSizeError-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="MediaUploadSizeError-toggle" onclick="return toggle('MediaUploadSizeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.MediaUploadSizeError-class.html">MediaUploadSizeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUploadSizeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MediaUploadSizeError-expanded"><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-docstring">"""Media is larger than the method can accept."""</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">pass</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="ResumableUploadError"></a><div id="ResumableUploadError-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="ResumableUploadError-toggle" onclick="return toggle('ResumableUploadError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ResumableUploadError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ResumableUploadError-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-docstring">"""Error occured during resumable upload."""</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">pass</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="BatchError"></a><div id="BatchError-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="BatchError-toggle" onclick="return toggle('BatchError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.BatchError-class.html">BatchError</a><tt class="py-op">(</tt><tt class="py-base-class">HttpError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BatchError-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-docstring">"""Error occured during batch operations."""</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
-<a name="BatchError.__init__"></a><div id="BatchError.__init__-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="BatchError.__init__-toggle" onclick="return toggle('BatchError.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.BatchError-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">reason</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">content</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="BatchError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__init__-expanded"><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">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</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">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</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">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
-</div><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
-<a name="BatchError.__repr__"></a><div id="BatchError.__repr__-def"><a name="L102"></a><tt class="py-lineno">102</tt> <a class="py-toggle" href="#" id="BatchError.__repr__-toggle" onclick="return toggle('BatchError.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.BatchError-class.html#__repr__">__repr__</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="BatchError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__repr__-expanded"><a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<BatchError %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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
+<a name="InvalidJsonError"></a><div id="InvalidJsonError-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="InvalidJsonError-toggle" onclick="return toggle('InvalidJsonError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.InvalidJsonError-class.html">InvalidJsonError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidJsonError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidJsonError-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-docstring">"""The JSON returned could not be parsed."""</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><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>
+<a name="UnknownLinkType"></a><div id="UnknownLinkType-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="UnknownLinkType-toggle" onclick="return toggle('UnknownLinkType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnknownLinkType-class.html">UnknownLinkType</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnknownLinkType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownLinkType-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-docstring">"""Link type unknown or unexpected."""</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
+<a name="UnknownApiNameOrVersion"></a><div id="UnknownApiNameOrVersion-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="UnknownApiNameOrVersion-toggle" onclick="return toggle('UnknownApiNameOrVersion');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnknownApiNameOrVersion-class.html">UnknownApiNameOrVersion</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnknownApiNameOrVersion-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownApiNameOrVersion-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""No API with that name and version exists."""</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</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="UnacceptableMimeTypeError"></a><div id="UnacceptableMimeTypeError-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="UnacceptableMimeTypeError-toggle" onclick="return toggle('UnacceptableMimeTypeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnacceptableMimeTypeError-class.html">UnacceptableMimeTypeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnacceptableMimeTypeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnacceptableMimeTypeError-expanded"><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-docstring">"""That is an unacceptable mimetype for this operation."""</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
+<a name="MediaUploadSizeError"></a><div id="MediaUploadSizeError-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="MediaUploadSizeError-toggle" onclick="return toggle('MediaUploadSizeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.MediaUploadSizeError-class.html">MediaUploadSizeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUploadSizeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MediaUploadSizeError-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-docstring">"""Media is larger than the method can accept."""</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
+<a name="ResumableUploadError"></a><div id="ResumableUploadError-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="ResumableUploadError-toggle" onclick="return toggle('ResumableUploadError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResumableUploadError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ResumableUploadError-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-docstring">"""Error occured during resumable upload."""</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="BatchError"></a><div id="BatchError-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="BatchError-toggle" onclick="return toggle('BatchError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.BatchError-class.html">BatchError</a><tt class="py-op">(</tt><tt class="py-base-class">HttpError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BatchError-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-docstring">"""Error occured during batch operations."""</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
+<a name="BatchError.__init__"></a><div id="BatchError.__init__-def"><a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="BatchError.__init__-toggle" onclick="return toggle('BatchError.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.BatchError-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">reason</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">content</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="BatchError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__init__-expanded"><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">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</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">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</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">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
+</div><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
+<a name="BatchError.__repr__"></a><div id="BatchError.__repr__-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="BatchError.__repr__-toggle" onclick="return toggle('BatchError.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.BatchError-class.html#__repr__">__repr__</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="BatchError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__repr__-expanded"><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'<BatchError %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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt><tt class="py-op">)</tt> </tt>
+</div><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">__str__</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name"><a title="apiclient.errors.BatchError.__repr__
+apiclient.errors.HttpError.__repr__" class="py-name" href="#" onclick="return doclink('link-6', '__repr__', 'link-5');">__repr__</a></tt> </tt>
</div><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-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="apiclient.errors.BatchError.__repr__
-apiclient.errors.HttpError.__repr__" class="py-name" href="#" onclick="return doclink('link-7', '__repr__', 'link-6');">__repr__</a></tt> </tt>
-</div><a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
-<a name="UnexpectedMethodError"></a><div id="UnexpectedMethodError-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError-toggle" onclick="return toggle('UnexpectedMethodError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnexpectedMethodError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedMethodError-expanded"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected calls."""</tt> </tt>
-<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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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__
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> </tt>
+<a name="UnexpectedMethodError"></a><div id="UnexpectedMethodError-def"><a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError-toggle" onclick="return toggle('UnexpectedMethodError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnexpectedMethodError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedMethodError-expanded"><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected calls."""</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
+<a name="UnexpectedMethodError.__init__"></a><div id="UnexpectedMethodError.__init__-def"><a name="L109"></a><tt class="py-lineno">109</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="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-7" 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-7', 'UnexpectedMethodError', 'link-7');">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-8" 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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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.CredentialsField.__init__()=oauth2client.django_orm.CredentialsField-class.html#__init__,Method oauth2client.django_orm.FlowField.__init__()=oauth2client.django_orm.FlowField-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.keyring_storage.Storage.__init__()=oauth2client.keyring_storage.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__
@@ -202,21 +197,24 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.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>
-</div></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="UnexpectedBodyError"></a><div id="UnexpectedBodyError-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError-toggle" onclick="return toggle('UnexpectedBodyError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnexpectedBodyError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedBodyError-expanded"><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected bodies."""</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
-<a name="UnexpectedBodyError.__init__"></a><div id="UnexpectedBodyError.__init__-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError.__init__-toggle" onclick="return toggle('UnexpectedBodyError.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedBodyError-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">expected</tt><tt class="py-op">,</tt> <tt class="py-param">provided</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnexpectedBodyError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedBodyError.__init__-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-10" class="py-name" targets="Class apiclient.errors.UnexpectedBodyError=apiclient.errors.UnexpectedBodyError-class.html"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-10', 'UnexpectedBodyError', 'link-10');">UnexpectedBodyError</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-11" class="py-name"><a title="apiclient.errors.BatchError.__init__
+oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-8', '__init__', 'link-8');">__init__</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</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>
+</div></div><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> </tt>
+<a name="UnexpectedBodyError"></a><div id="UnexpectedBodyError-def"><a name="L115"></a><tt class="py-lineno">115</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError-toggle" onclick="return toggle('UnexpectedBodyError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnexpectedBodyError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedBodyError-expanded"><a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected bodies."""</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> </tt>
+<a name="UnexpectedBodyError.__init__"></a><div id="UnexpectedBodyError.__init__-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError.__init__-toggle" onclick="return toggle('UnexpectedBodyError.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.errors.UnexpectedBodyError-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">expected</tt><tt class="py-op">,</tt> <tt class="py-param">provided</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnexpectedBodyError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedBodyError.__init__-expanded"><a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name" targets="Class apiclient.errors.UnexpectedBodyError=apiclient.errors.UnexpectedBodyError-class.html"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-9', 'UnexpectedBodyError', 'link-9');">UnexpectedBodyError</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-10" class="py-name"><a title="apiclient.errors.BatchError.__init__
apiclient.errors.HttpError.__init__
apiclient.errors.UnexpectedBodyError.__init__
apiclient.errors.UnexpectedMethodError.__init__
@@ -248,14 +246,17 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.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>
-</div></div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt><script type="text/javascript">
+oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-10', '__init__', 'link-8');">__init__</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</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>
+</div></div><a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -285,7 +286,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 2765285..272cd3c 100644
--- a/docs/epy/apiclient.errors.BatchError-class.html
+++ b/docs/epy/apiclient.errors.BatchError-class.html
@@ -325,7 +325,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 a23dff0..b01de2b 100644
--- a/docs/epy/apiclient.errors.Error-class.html
+++ b/docs/epy/apiclient.errors.Error-class.html
@@ -176,7 +176,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 07fe4a0..7499e73 100644
--- a/docs/epy/apiclient.errors.HttpError-class.html
+++ b/docs/epy/apiclient.errors.HttpError-class.html
@@ -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 Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 1fcdd56..1b2f1b6 100644
--- a/docs/epy/apiclient.errors.InvalidJsonError-class.html
+++ b/docs/epy/apiclient.errors.InvalidJsonError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 f7d2134..a7cf8a6 100644
--- a/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
+++ b/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 56f8df1..ec4cbf6 100644
--- a/docs/epy/apiclient.errors.ResumableUploadError-class.html
+++ b/docs/epy/apiclient.errors.ResumableUploadError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 39c6daa..4b60ff8 100644
--- a/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
+++ b/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 a02d8a1..e6307a7 100644
--- a/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
+++ b/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
@@ -232,7 +232,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 f580c65..8d45404 100644
--- a/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
+++ b/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
@@ -230,7 +230,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 5cf31a6..ba6960e 100644
--- a/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
+++ b/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 829f509..55bdc8c 100644
--- a/docs/epy/apiclient.errors.UnknownLinkType-class.html
+++ b/docs/epy/apiclient.errors.UnknownLinkType-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 bbd2740..fd067ef 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 58dc832..cce168a 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 Mon Jul 23 15:50:06 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 25daaa4..5b80d9f 100644
--- a/docs/epy/apiclient.http-module.html
+++ b/docs/epy/apiclient.http-module.html
@@ -391,7 +391,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 fc3c5e7..0c715cd 100644
--- a/docs/epy/apiclient.http-pysrc.html
+++ b/docs/epy/apiclient.http-pysrc.html
@@ -668,7 +668,7 @@
<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.HttpLib2Error if a transport error has occured.</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-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> <tt class="py-string">'range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes=%d-%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
@@ -778,7 +778,7 @@
<a name="L634"></a><tt class="py-lineno"> 634</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.HttpLib2Error if a transport error has occured.</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-keyword">if</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-48');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
@@ -805,60 +805,59 @@
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-71', 'request', 'link-45');">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="L650"></a><tt class="py-lineno"> 650</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="L651"></a><tt class="py-lineno"> 651</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="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 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="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-72" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-72', '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="L655"></a><tt class="py-lineno"> 655</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="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest.next_chunk"></a><div id="HttpRequest.next_chunk-def"><a name="L657"></a><tt class="py-lineno"> 657</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="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the next step of a resumable upload.</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</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="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> the MediaUpload object passed in was flagged as using resumable upload.</tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaFileUpload('cow.png', mimetype='image/png',</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"> chunksize=1000, resumable=True)</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"><tt class="py-docstring"> request = farm.animals().insert(</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"><tt class="py-docstring"> id='cow',</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"><tt class="py-docstring"> name='cow.png',</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media)</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-docstring"> response = None</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> while response is None:</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> status, response = request.next_chunk()</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> if status:</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"><tt class="py-docstring"> print "Upload %d%% complete." % int(status.progress() * 100)</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</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="L653"></a><tt class="py-lineno"> 653</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-72" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-72', '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="L654"></a><tt class="py-lineno"> 654</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="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest.next_chunk"></a><div id="HttpRequest.next_chunk-def"><a name="L656"></a><tt class="py-lineno"> 656</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="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the next step of a resumable upload.</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</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="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> the MediaUpload object passed in was flagged as using resumable upload.</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"><tt class="py-docstring"> media = MediaFileUpload('cow.png', mimetype='image/png',</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> chunksize=1000, resumable=True)</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"> request = farm.animals().insert(</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"><tt class="py-docstring"> id='cow',</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"><tt class="py-docstring"> name='cow.png',</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"><tt class="py-docstring"> media_body=media)</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"><tt class="py-docstring"> response = None</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"><tt class="py-docstring"> while response is None:</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> status, response = request.next_chunk()</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> if status:</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> print "Upload %d%% complete." % int(status.progress() * 100)</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</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="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-73" class="py-name"><a title="apiclient.http
+<a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</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="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-73" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-73', 'http', 'link-48');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> <tt id="link-74" class="py-name"><a title="apiclient.http
+<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"> <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-48');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-48');">http</a></tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</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-76" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</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-76" 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-76', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-77" 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-77', 'size', 'link-36');">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="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt id="link-78" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt id="link-78" 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-78', 'size', 'link-36');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*'</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt id="link-79" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt id="link-79" 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-79', 'size', 'link-36');">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-80" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
@@ -868,150 +867,150 @@
apiclient.http.MediaInMemoryUpload.size
apiclient.http.MediaIoBaseUpload.size
apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-81', 'size', 'link-36');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</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="L696"></a><tt class="py-lineno"> 696</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="L697"></a><tt class="py-lineno"> 697</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-82" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</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="L695"></a><tt class="py-lineno"> 695</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="L696"></a><tt class="py-lineno"> 696</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-82" 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-82', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-83" 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-83', 'mimetype', 'link-23');">mimetype</a></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 id="link-84" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-84" 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-84', 'size', 'link-36');">size</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'*'</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">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-85" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<a name="L698"></a><tt class="py-lineno"> 698</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-85" 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-85', 'size', 'link-36');">size</a></tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</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="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">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-86" class="py-name"><a title="apiclient.http
+<a name="L699"></a><tt class="py-lineno"> 699</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="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</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-86" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-86', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-87" 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-87', 'request', 'link-45');">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="L703"></a><tt class="py-lineno"> 703</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="L704"></a><tt class="py-lineno"> 704</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="L705"></a><tt class="py-lineno"> 705</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="L706"></a><tt class="py-lineno"> 706</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="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"> <tt class="py-keyword">else</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 id="link-88" class="py-name"><a title="apiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-88', '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="L709"></a><tt class="py-lineno"> 709</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="L710"></a><tt class="py-lineno"> 710</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="L711"></a><tt class="py-lineno"> 711</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="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-comment"># the response.</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-name">headers</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-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes */%s'</tt> <tt class="py-op">%</tt> <tt id="link-89" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<a name="L702"></a><tt class="py-lineno"> 702</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="L703"></a><tt class="py-lineno"> 703</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="L704"></a><tt class="py-lineno"> 704</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="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">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="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"> <tt class="py-keyword">else</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">raise</tt> <tt id="link-88" class="py-name"><a title="apiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-88', '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="L708"></a><tt class="py-lineno"> 708</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="L709"></a><tt class="py-lineno"> 709</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="L710"></a><tt class="py-lineno"> 710</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="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-comment"># the response.</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</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-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-36');">size</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</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="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</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-90" class="py-name"><a title="apiclient.http
+<a name="L714"></a><tt class="py-lineno"> 714</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="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</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-90" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-90', 'http', 'link-48');">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-45');">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="L718"></a><tt class="py-lineno"> 718</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="L719"></a><tt class="py-lineno"> 719</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-92" 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-92', '_process_response', 'link-92');">_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="L720"></a><tt class="py-lineno"> 720</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="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"> <tt class="py-comment"># The upload was complete.</tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</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="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</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-93" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L717"></a><tt class="py-lineno"> 717</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="L718"></a><tt class="py-lineno"> 718</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-92" 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-92', '_process_response', 'link-92');">_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="L719"></a><tt class="py-lineno"> 719</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="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-comment"># The upload was complete.</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</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="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</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-93" 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-93', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-94" 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-94', 'getbytes', 'link-94');">getbytes</a></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">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-95" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L724"></a><tt class="py-lineno"> 724</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-95" 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-95', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-96" 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-96', 'chunksize', 'link-27');">chunksize</a></tt><tt class="py-op">(</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>
-<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"> <tt class="py-comment"># A short read implies that we are at EOF, so finish the upload.</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</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">data</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-97" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<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-comment"># A short read implies that we are at EOF, so finish the upload.</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</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">data</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-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 id="link-98" 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-98', 'chunksize', 'link-27');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"> <tt id="link-99" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"> <tt id="link-99" 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-99', 'size', 'link-36');">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 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>
-<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</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="L733"></a><tt class="py-lineno"> 733</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="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt id="link-100" class="py-name"><a title="apiclient.http.MediaFileUpload.size
+<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-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</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="L732"></a><tt class="py-lineno"> 732</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="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"> <tt id="link-100" 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-100', 'size', 'link-36');">size</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</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-101" class="py-name"><a title="apiclient.http
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</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-101" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-101', 'http', 'link-48');">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-45');">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="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">data</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">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</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="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-keyword">raise</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="apiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-103', '_process_response', 'link-92');">_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="L745"></a><tt class="py-lineno"> 745</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest._process_response"></a><div id="HttpRequest._process_response-def"><a name="L746"></a><tt class="py-lineno"> 746</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="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"> <tt class="py-docstring">"""Process the response from a single chunk upload.</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response object.</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the content of the response.</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</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="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</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="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</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="L761"></a><tt class="py-lineno"> 761</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="L762"></a><tt class="py-lineno"> 762</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="L763"></a><tt class="py-lineno"> 763</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="L764"></a><tt class="py-lineno"> 764</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="L765"></a><tt class="py-lineno"> 765</tt> <tt class="py-line"> <tt class="py-comment"># A "308 Resume Incomplete" indicates we are not done.</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</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="L767"></a><tt class="py-lineno"> 767</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="L768"></a><tt class="py-lineno"> 768</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="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"> <tt class="py-keyword">else</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">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-104" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-104', '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="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-105" 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-105', 'MediaUploadProgress', 'link-105');">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-106" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L737"></a><tt class="py-lineno"> 737</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="L738"></a><tt class="py-lineno"> 738</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="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-keyword">except</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">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="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</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-103" class="py-name"><a title="apiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-103', '_process_response', 'link-92');">_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="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest._process_response"></a><div id="HttpRequest._process_response-def"><a name="L745"></a><tt class="py-lineno"> 745</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="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"> <tt class="py-docstring">"""Process the response from a single chunk upload.</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response object.</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the content of the response.</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> (status, body): (ResumableMediaStatus, object)</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</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="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</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="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</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="L760"></a><tt class="py-lineno"> 760</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="L761"></a><tt class="py-lineno"> 761</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="L762"></a><tt class="py-lineno"> 762</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="L763"></a><tt class="py-lineno"> 763</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="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> <tt class="py-comment"># A "308 Resume Incomplete" indicates we are not done.</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</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="L766"></a><tt class="py-lineno"> 766</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="L767"></a><tt class="py-lineno"> 767</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="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</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="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-104" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-104', '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="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-op">(</tt><tt id="link-105" 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-105', 'MediaUploadProgress', 'link-105');">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-106" 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-106', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-107" 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-107', 'size', 'link-36');">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="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"> </tt>
-<a name="HttpRequest.to_json"></a><div id="HttpRequest.to_json-def"><a name="L776"></a><tt class="py-lineno"> 776</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="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a JSON representation of the HttpRequest."""</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</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="L779"></a><tt class="py-lineno"> 779</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="L780"></a><tt class="py-lineno"> 780</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-108" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"> </tt>
+<a name="HttpRequest.to_json"></a><div id="HttpRequest.to_json-def"><a name="L775"></a><tt class="py-lineno"> 775</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="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns a JSON representation of the HttpRequest."""</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</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="L778"></a><tt class="py-lineno"> 778</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="L779"></a><tt class="py-lineno"> 779</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-108" 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-108', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-109" 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
@@ -1021,117 +1020,117 @@
apiclient.http.MediaUpload.to_json
oauth2client.client.Credentials.to_json
oauth2client.client.OAuth2Credentials.to_json" class="py-name" href="#" onclick="return doclink('link-109', 'to_json', 'link-109');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</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="L782"></a><tt class="py-lineno"> 782</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="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</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="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</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="L787"></a><tt class="py-lineno"> 787</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="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns an HttpRequest populated with info from a JSON object."""</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</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-110" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-110', '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="L790"></a><tt class="py-lineno"> 790</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="L791"></a><tt class="py-lineno"> 791</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-111" 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-111', 'MediaUpload', 'link-111');">MediaUpload</a></tt><tt class="py-op">.</tt><tt id="link-112" 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
+<a name="L780"></a><tt class="py-lineno"> 780</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="L781"></a><tt class="py-lineno"> 781</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="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</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="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</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="L786"></a><tt class="py-lineno"> 786</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="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns an HttpRequest populated with info from a JSON object."""</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</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-110" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-110', '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="L789"></a><tt class="py-lineno"> 789</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="L790"></a><tt class="py-lineno"> 790</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-111" 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-111', 'MediaUpload', 'link-111');">MediaUpload</a></tt><tt class="py-op">.</tt><tt id="link-112" 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-112', 'new_from_json', 'link-112');">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="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-113" 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-113', 'HttpRequest', 'link-113');">HttpRequest</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt id="link-114" class="py-name"><a title="apiclient.http
+<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-113" 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-113', 'HttpRequest', 'link-113');">HttpRequest</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"> <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-48');">http</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"> <tt class="py-name">postproc</tt><tt class="py-op">,</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</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="L796"></a><tt class="py-lineno"> 796</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="L797"></a><tt class="py-lineno"> 797</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="L798"></a><tt class="py-lineno"> 798</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="L799"></a><tt class="py-lineno"> 799</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="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt id="link-115" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"> <tt class="py-name">postproc</tt><tt class="py-op">,</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</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="L795"></a><tt class="py-lineno"> 795</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="L796"></a><tt class="py-lineno"> 796</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="L797"></a><tt class="py-lineno"> 797</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="L798"></a><tt class="py-lineno"> 798</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="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"> <tt id="link-115" 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-115', '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="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest"></a><div id="BatchHttpRequest-def"><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> <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="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> <tt class="py-docstring">"""Batches multiple HttpRequest objects into a single HTTP request.</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-docstring"> Example:</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"> from apiclient.http import BatchHttpRequest</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"> def list_animals(request_id, response, exception):</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> \"\"\"Do something with the animals list response.\"\"\"</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> if exception is not None:</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the exception.</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"><tt class="py-docstring"> else:</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the response.</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> def list_farmers(request_id, response, exception):</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"><tt class="py-docstring"> \"\"\"Do something with the farmers list response.\"\"\"</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"><tt class="py-docstring"> if exception is not None:</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the exception.</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"><tt class="py-docstring"> else:</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the response.</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"><tt class="py-docstring"> service = build('farm', 'v2')</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"> batch = BatchHttpRequest()</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> batch.add(service.animals().list(), list_animals)</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> batch.add(service.farmers().list(), list_farmers)</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> batch.execute(http)</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest.__init__"></a><div id="BatchHttpRequest.__init__-def"><a name="L836"></a><tt class="py-lineno"> 836</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="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for a BatchHttpRequest.</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</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="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response, exception). The first parameter is the</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"><tt class="py-docstring"> request id, and the second is the deserialized response object. The</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"><tt class="py-docstring"> third is an apiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"><tt class="py-docstring"> occurred while processing the request, or None if no error occurred.</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt> <tt class="py-line"><tt class="py-docstring"> batch_uri: string, URI to send batch requests to.</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</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="L848"></a><tt class="py-lineno"> 848</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="L849"></a><tt class="py-lineno"> 849</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="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</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="L852"></a><tt class="py-lineno"> 852</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="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to request.</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</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="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to callback.</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">_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</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="L861"></a><tt class="py-lineno"> 861</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="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> <tt class="py-comment"># The last auto generated id.</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">_last_auto_id</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-comment"># Unique ID on which to base the Content-ID headers.</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</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="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-comment"># A map from request id to (httplib2.Response, content) response pairs</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</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="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-comment"># A map of id(Credentials) that have been refreshed.</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</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="L874"></a><tt class="py-lineno"> 874</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._refresh_and_apply_credentials"></a><div id="BatchHttpRequest._refresh_and_apply_credentials-def"><a name="L875"></a><tt class="py-lineno"> 875</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="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"> <tt class="py-docstring">"""Refresh the credentials and apply to the request.</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"> Args:</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request.</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, the global http object for the batch.</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-comment"># For the credentials to refresh, but only once per refresh_token</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</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="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"> <tt class="py-comment"># via execute()</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</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="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-116" class="py-name"><a title="apiclient.http.HttpMock.request
+</div></div><a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest"></a><div id="BatchHttpRequest-def"><a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</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="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> <tt class="py-docstring">"""Batches multiple HttpRequest objects into a single HTTP request.</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt> <tt class="py-line"><tt class="py-docstring"> from apiclient.http import BatchHttpRequest</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"> def list_animals(request_id, response, exception):</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"> \"\"\"Do something with the animals list response.\"\"\"</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"> if exception is not None:</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the exception.</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"><tt class="py-docstring"> else:</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the response.</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"><tt class="py-docstring"> def list_farmers(request_id, response, exception):</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"><tt class="py-docstring"> \"\"\"Do something with the farmers list response.\"\"\"</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"><tt class="py-docstring"> if exception is not None:</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the exception.</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"><tt class="py-docstring"> else:</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"><tt class="py-docstring"> # Do something with the response.</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"><tt class="py-docstring"> pass</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"><tt class="py-docstring"> service = build('farm', 'v2')</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"><tt class="py-docstring"> batch = BatchHttpRequest()</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"> batch.add(service.animals().list(), list_animals)</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"> batch.add(service.farmers().list(), list_farmers)</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"> batch.execute(http)</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest.__init__"></a><div id="BatchHttpRequest.__init__-def"><a name="L835"></a><tt class="py-lineno"> 835</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="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for a BatchHttpRequest.</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</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="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response, exception). The first parameter is the</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"><tt class="py-docstring"> request id, and the second is the deserialized response object. The</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"><tt class="py-docstring"> third is an apiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"><tt class="py-docstring"> occurred while processing the request, or None if no error occurred.</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"><tt class="py-docstring"> batch_uri: string, URI to send batch requests to.</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-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="L847"></a><tt class="py-lineno"> 847</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="L848"></a><tt class="py-lineno"> 848</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="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</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="L851"></a><tt class="py-lineno"> 851</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="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to request.</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</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="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"> <tt class="py-comment"># A map from id to callback.</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</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="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"># List of request ids, in the order in which they were added.</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">_order</tt> <tt class="py-op">=</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>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> <tt class="py-comment"># The last auto generated id.</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</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="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"># Unique ID on which to base the Content-ID headers.</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</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="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-comment"># A map from request id to (httplib2.Response, content) response pairs</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</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="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> <tt class="py-comment"># A map of id(Credentials) that have been refreshed.</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</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="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._refresh_and_apply_credentials"></a><div id="BatchHttpRequest._refresh_and_apply_credentials-def"><a name="L874"></a><tt class="py-lineno"> 874</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="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"> <tt class="py-docstring">"""Refresh the credentials and apply to the request.</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"> Args:</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request.</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"> http: httplib2.Http, the global http object for the batch.</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"> <tt class="py-comment"># For the credentials to refresh, but only once per refresh_token</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</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="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"> <tt class="py-comment"># via execute()</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</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="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"> <tt class="py-keyword">if</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-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="apiclient.http
@@ -1143,8 +1142,8 @@
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-120', 'request', 'link-45');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"> <tt class="py-name">creds</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-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="apiclient.http
@@ -1152,27 +1151,27 @@
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-123', 'request', 'link-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-124" 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-124', 'credentials', 'link-124');">credentials</a></tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-125" class="py-name"><a title="apiclient.http
+<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt id="link-125" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-125', 'http', 'link-48');">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-126" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-126', 'http', 'link-48');">http</a></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-127', 'request', 'link-45');">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="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-128" class="py-name"><a title="apiclient.http
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"> <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-128" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-128', 'http', 'link-48');">http</a></tt><tt class="py-op">.</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-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-130', 'credentials', 'link-124');">credentials</a></tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</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="L892"></a><tt class="py-lineno"> 892</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="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-131" 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
+<a name="L890"></a><tt class="py-lineno"> 890</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="L891"></a><tt class="py-lineno"> 891</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="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-131" 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-131', 'refresh', 'link-131');">refresh</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-48');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</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="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</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="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-comment"># otherwise apply() will get called during _serialize_request().</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-133" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L893"></a><tt class="py-lineno"> 893</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="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</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="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> <tt class="py-comment"># otherwise apply() will get called during _serialize_request().</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-keyword">if</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-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="apiclient.http
@@ -1184,87 +1183,87 @@
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-137', 'request', 'link-45');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-138" 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
+<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt id="link-138" 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-138', 'apply', 'link-138');">apply</a></tt><tt class="py-op">(</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-45');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._id_to_header"></a><div id="BatchHttpRequest._id_to_header-def"><a name="L902"></a><tt class="py-lineno"> 902</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="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an id to a Content-ID header value.</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"> Args:</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"> id_: string, identifier of individual request.</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"> Returns:</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</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="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"><tt class="py-docstring"> the value because Content-ID headers are supposed to be universally</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"><tt class="py-docstring"> 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">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="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">_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="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</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="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._header_to_id"></a><div id="BatchHttpRequest._header_to_id-def"><a name="L918"></a><tt class="py-lineno"> 918</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="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert a Content-ID header value to an id.</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</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="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"><tt class="py-docstring"> returns.</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"> Args:</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"><tt class="py-docstring"> header: string, Content-ID header value.</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"> Returns:</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"><tt class="py-docstring"> The extracted id value.</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if the header is not in the expected format.</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</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="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-140" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-140', '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="L935"></a><tt class="py-lineno"> 935</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="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-141" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-141', '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="L937"></a><tt class="py-lineno"> 937</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="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</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="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._serialize_request"></a><div id="BatchHttpRequest._serialize_request-def"><a name="L941"></a><tt class="py-lineno"> 941</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="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an HttpRequest object into a string.</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request to serialize.</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"><tt class="py-docstring"> The request as a string in application/http format.</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-comment"># Construct status line</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</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-142" class="py-name"><a title="apiclient.http.HttpMock.request
+</div><a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._id_to_header"></a><div id="BatchHttpRequest._id_to_header-def"><a name="L901"></a><tt class="py-lineno"> 901</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="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an id to a Content-ID header value.</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"> Args:</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"><tt class="py-docstring"> id_: string, identifier of individual request.</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</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="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"><tt class="py-docstring"> the value because Content-ID headers are supposed to be universally</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"><tt class="py-docstring"> unique.</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"><tt class="py-docstring"> """</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">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="L913"></a><tt class="py-lineno"> 913</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="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</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="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._header_to_id"></a><div id="BatchHttpRequest._header_to_id-def"><a name="L917"></a><tt class="py-lineno"> 917</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="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert a Content-ID header value to an id.</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</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="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"><tt class="py-docstring"> returns.</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"><tt class="py-docstring"> header: string, Content-ID header value.</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"> Returns:</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"><tt class="py-docstring"> The extracted id value.</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if the header is not in the expected format.</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-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="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-140" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-140', '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="L934"></a><tt class="py-lineno"> 934</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="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-141" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-141', '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="L936"></a><tt class="py-lineno"> 936</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="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-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="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._serialize_request"></a><div id="BatchHttpRequest._serialize_request-def"><a name="L940"></a><tt class="py-lineno"> 940</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="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert an HttpRequest object into a string.</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"> Args:</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, the request to serialize.</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"><tt class="py-docstring"> The request as a string in application/http format.</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> <tt class="py-comment"># Construct status line</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</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-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-45');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</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="L953"></a><tt class="py-lineno"> 953</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="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"> <tt class="py-name">status_line</tt> <tt class="py-op">=</tt> <tt id="link-143" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L951"></a><tt class="py-lineno"> 951</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="L952"></a><tt class="py-lineno"> 952</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="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"> <tt class="py-name">status_line</tt> <tt class="py-op">=</tt> <tt id="link-143" 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-143', 'request', 'link-45');">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="L956"></a><tt class="py-lineno"> 956</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-144" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L955"></a><tt class="py-lineno"> 955</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-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-45');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</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-145', 'get', 'link-63');">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="L957"></a><tt class="py-lineno"> 957</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="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-146" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L956"></a><tt class="py-lineno"> 956</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="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"> <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-146" 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-146', 'request', 'link-45');">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="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-147" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"> <tt class="py-keyword">if</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-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="apiclient.http
@@ -1276,8 +1275,8 @@
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-151', 'request', 'link-45');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> <tt class="py-string">'credentials'</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 id="link-152" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-string">'credentials'</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 id="link-152" class="py-name"><a title="apiclient.http.HttpMock.request
apiclient.http.HttpMockSequence.request
apiclient.model.BaseModel.request
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-152', 'request', 'link-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="apiclient.http
@@ -1286,596 +1285,601 @@
apiclient.model.BaseModel.request
apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-154', 'request', 'link-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-155', 'credentials', 'link-124');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="oauth2client.client.Credentials.apply
oauth2client.client.OAuth2Credentials.apply" class="py-name" href="#" onclick="return doclink('link-156', 'apply', 'link-138');">apply</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</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"># MIMENonMultipart adds its own Content-Type header.</tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</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="L966"></a><tt class="py-lineno"> 966</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="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</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="L969"></a><tt class="py-lineno"> 969</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="L970"></a><tt class="py-lineno"> 970</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="L971"></a><tt class="py-lineno"> 971</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="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-157" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt> <tt class="py-line"> <tt class="py-comment"># MIMENonMultipart adds its own Content-Type header.</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</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="L965"></a><tt class="py-lineno"> 965</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="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-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="L968"></a><tt class="py-lineno"> 968</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="L969"></a><tt class="py-lineno"> 969</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="L970"></a><tt class="py-lineno"> 970</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="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"> <tt class="py-keyword">if</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-45');">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="L974"></a><tt class="py-lineno"> 974</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-158" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L973"></a><tt class="py-lineno"> 973</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-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-45');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</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-159" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L974"></a><tt class="py-lineno"> 974</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-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-45');">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="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"> <tt class="py-comment"># Serialize the mime message.</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</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="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-comment"># maxheaderlen=0 means don't line wrap headers.</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</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="L981"></a><tt class="py-lineno"> 981</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="L982"></a><tt class="py-lineno"> 982</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="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</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="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-160" class="py-name"><a title="apiclient.http.HttpMock.request
+<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-comment"># Serialize the mime message.</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</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="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"> <tt class="py-comment"># maxheaderlen=0 means don't line wrap headers.</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</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="L980"></a><tt class="py-lineno"> 980</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="L981"></a><tt class="py-lineno"> 981</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="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</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="L984"></a><tt class="py-lineno"> 984</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-45');">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="L986"></a><tt class="py-lineno"> 986</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="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</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="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._deserialize_response"></a><div id="BatchHttpRequest._deserialize_response-def"><a name="L990"></a><tt class="py-lineno"> 990</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="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert string into httplib2 response and content.</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"><tt class="py-docstring"> payload: string, headers and body as a string.</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 class="py-docstring"> Returns:</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"><tt class="py-docstring"> A pair (resp, content), such as would be returned from httplib2.request.</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-comment"># Strip off the status line</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</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="L1001"></a><tt class="py-lineno">1001</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="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> <tt class="py-comment"># Parse the rest of the response</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</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="L1005"></a><tt class="py-lineno">1005</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="L1006"></a><tt class="py-lineno">1006</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="L1007"></a><tt class="py-lineno">1007</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="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-comment"># Create httplib2.Response from the parsed headers.</tt> </tt>
-<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">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="L1011"></a><tt class="py-lineno">1011</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="L1012"></a><tt class="py-lineno">1012</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="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> </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">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="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</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="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._new_id"></a><div id="BatchHttpRequest._new_id-def"><a name="L1018"></a><tt class="py-lineno">1018</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="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new id.</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"> Auto incrementing number that avoids conflicts with ids already used.</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"><tt class="py-docstring"> string, a new unique id.</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-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="L1027"></a><tt class="py-lineno">1027</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="L1028"></a><tt class="py-lineno">1028</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="L1029"></a><tt class="py-lineno">1029</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="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest.add"></a><div id="BatchHttpRequest.add-def"><a name="L1031"></a><tt class="py-lineno">1031</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="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"> <tt class="py-docstring">"""Add a new request.</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</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="L1035"></a><tt class="py-lineno">1035</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="L1036"></a><tt class="py-lineno">1036</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="L1037"></a><tt class="py-lineno">1037</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="L1038"></a><tt class="py-lineno">1038</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="L1039"></a><tt class="py-lineno">1039</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="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"><tt class="py-docstring"> request id, to avoid such an error.</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, Request to add to the batch.</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</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="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response, exception). The first parameter is the</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"><tt class="py-docstring"> request id, and the second is the deserialized response object. The</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"><tt class="py-docstring"> third is an apiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"><tt class="py-docstring"> occurred while processing the request, or None if no errors occurred.</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</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="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"><tt class="py-docstring"> the callback with the response.</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if a media request is added to a batch.</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"><tt class="py-docstring"> KeyError is the request_id is not unique.</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</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="L1060"></a><tt class="py-lineno">1060</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-161" 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-161', '_new_id', 'link-161');">_new_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-162" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L985"></a><tt class="py-lineno"> 985</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="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</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="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._deserialize_response"></a><div id="BatchHttpRequest._deserialize_response-def"><a name="L989"></a><tt class="py-lineno"> 989</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="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-docstring">"""Convert string into httplib2 response and content.</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"> Args:</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"><tt class="py-docstring"> payload: string, headers and body as a string.</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"> Returns:</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"><tt class="py-docstring"> A pair (resp, content), such as would be returned from httplib2.request.</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-comment"># Strip off the status line</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</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="L1000"></a><tt class="py-lineno">1000</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="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-comment"># Parse the rest of the response</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</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="L1004"></a><tt class="py-lineno">1004</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="L1005"></a><tt class="py-lineno">1005</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="L1006"></a><tt class="py-lineno">1006</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="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-comment"># Create httplib2.Response from the parsed headers.</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</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="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">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</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="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-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="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</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="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._new_id"></a><div id="BatchHttpRequest._new_id-def"><a name="L1017"></a><tt class="py-lineno">1017</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="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-docstring">"""Create a new id.</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"> Auto incrementing number that avoids conflicts with ids already used.</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt> <tt class="py-line"><tt class="py-docstring"> string, a new unique id.</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-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="L1026"></a><tt class="py-lineno">1026</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="L1027"></a><tt class="py-lineno">1027</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="L1028"></a><tt class="py-lineno">1028</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="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest.add"></a><div id="BatchHttpRequest.add-def"><a name="L1030"></a><tt class="py-lineno">1030</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="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"> <tt class="py-docstring">"""Add a new request.</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"> Every callback added will be paired with a unique id, the request_id. That</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</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="L1035"></a><tt class="py-lineno">1035</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="L1036"></a><tt class="py-lineno">1036</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="L1037"></a><tt class="py-lineno">1037</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="L1038"></a><tt class="py-lineno">1038</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="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"><tt class="py-docstring"> request id, to avoid such an error.</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-docstring"> Args:</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"><tt class="py-docstring"> request: HttpRequest, Request to add to the batch.</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</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="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"><tt class="py-docstring"> form callback(id, response, exception). The first parameter is the</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt> <tt class="py-line"><tt class="py-docstring"> request id, and the second is the deserialized response object. The</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"><tt class="py-docstring"> third is an apiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"><tt class="py-docstring"> occurred while processing the request, or None if no errors occurred.</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</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="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"><tt class="py-docstring"> the callback with the response.</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-docstring"> BatchError if a media request is added to a batch.</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"><tt class="py-docstring"> KeyError is the request_id is not unique.</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 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="L1059"></a><tt class="py-lineno">1059</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-161" 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-161', '_new_id', 'link-161');">_new_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"> <tt class="py-keyword">if</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-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-163" 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-163', '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="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-164" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-164', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media requests cannot be used in a batch request."</tt><tt class="py-op">)</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">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="L1064"></a><tt class="py-lineno">1064</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="L1065"></a><tt class="py-lineno">1065</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-165" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-164" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-164', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media requests cannot be used in a batch request."</tt><tt class="py-op">)</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-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="L1063"></a><tt class="py-lineno">1063</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="L1064"></a><tt class="py-lineno">1064</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-165" 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-165', 'request', 'link-45');">request</a></tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</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="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_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="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._execute"></a><div id="BatchHttpRequest._execute-def"><a name="L1069"></a><tt class="py-lineno">1069</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="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-docstring">"""Serialize batch request, send to server, process response.</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</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="L1074"></a><tt class="py-lineno">1074</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="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"><tt class="py-docstring"> batch.</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"><tt class="py-docstring"> request: list, list of request objects to send.</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</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-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="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"> <tt class="py-comment"># Message should not write out it's own headers.</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</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="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"> <tt class="py-comment"># Add all the individual requests.</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</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="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> <tt id="link-166" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1065"></a><tt class="py-lineno">1065</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="L1066"></a><tt class="py-lineno">1066</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="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._execute"></a><div id="BatchHttpRequest._execute-def"><a name="L1068"></a><tt class="py-lineno">1068</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="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt class="py-docstring">"""Serialize batch request, send to server, process response.</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"> Args:</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</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="L1073"></a><tt class="py-lineno">1073</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="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"><tt class="py-docstring"> batch.</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"><tt class="py-docstring"> request: list, list of request objects to send.</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</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="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"> <tt class="py-comment"># Message should not write out it's own headers.</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</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="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"> <tt class="py-comment"># Add all the individual requests.</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</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="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"> <tt id="link-166" 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-166', 'request', 'link-45');">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="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</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="L1091"></a><tt class="py-lineno">1091</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="L1092"></a><tt class="py-lineno">1092</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-167" 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-167', '_id_to_header', 'link-167');">_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="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</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-168" 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-168', '_serialize_request', 'link-168');">_serialize_request</a></tt><tt class="py-op">(</tt><tt id="link-169" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</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="L1090"></a><tt class="py-lineno">1090</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="L1091"></a><tt class="py-lineno">1091</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-167" 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-167', '_id_to_header', 'link-167');">_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="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</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-168" 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-168', '_serialize_request', 'link-168');">_serialize_request</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-45');">request</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</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="L1096"></a><tt class="py-lineno">1096</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="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-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="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</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="L1101"></a><tt class="py-lineno">1101</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="L1102"></a><tt class="py-lineno">1102</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="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</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-170" class="py-name"><a title="apiclient.http
+<a name="L1094"></a><tt class="py-lineno">1094</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="L1095"></a><tt class="py-lineno">1095</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="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</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="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 class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</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="L1101"></a><tt class="py-lineno">1101</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="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</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-170" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-170', 'http', 'link-48');">http</a></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-45');">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="L1105"></a><tt class="py-lineno">1105</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="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</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="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-172" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-172', '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="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-comment"># Now break out the individual responses and store each one.</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</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="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-comment"># Prepend with a content-type header so FeedParser can handle it.</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</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="L1115"></a><tt class="py-lineno">1115</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="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</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="L1118"></a><tt class="py-lineno">1118</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="L1119"></a><tt class="py-lineno">1119</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="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</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="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-173" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-173', '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="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</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="L1126"></a><tt class="py-lineno">1126</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-174" 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-174', '_header_to_id', 'link-174');">_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="L1127"></a><tt class="py-lineno">1127</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
+<a name="L1104"></a><tt class="py-lineno">1104</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="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</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="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-172" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-172', '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="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-comment"># Now break out the individual responses and store each one.</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</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="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> <tt class="py-comment"># Prepend with a content-type header so FeedParser can handle it.</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</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="L1114"></a><tt class="py-lineno">1114</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="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</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="L1117"></a><tt class="py-lineno">1117</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="L1118"></a><tt class="py-lineno">1118</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="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</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="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-173" class="py-name"><a title="apiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-173', '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="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</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="L1125"></a><tt class="py-lineno">1125</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-174" 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-174', '_header_to_id', 'link-174');">_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="L1126"></a><tt class="py-lineno">1126</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">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-176" 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-176', '_deserialize_response', 'link-176');">_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="L1128"></a><tt class="py-lineno">1128</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 id="link-177" class="py-name"><a title="apiclient.model.BaseModel.response
+<a name="L1127"></a><tt class="py-lineno">1127</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 id="link-177" class="py-name"><a title="apiclient.model.BaseModel.response
apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-177', 'response', 'link-175');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> </tt>
-<a name="BatchHttpRequest.execute"></a><div id="BatchHttpRequest.execute-def"><a name="L1130"></a><tt class="py-lineno">1130</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="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute all the requests as a single batched HTTP request.</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</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="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest request object was constructed with. If one isn't supplied</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"><tt class="py-docstring"> then use a http object from the requests in this batch.</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.Error if a transport error has occured.</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</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="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-178" class="py-name"><a title="apiclient.http
+</div><a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> </tt>
+<a name="BatchHttpRequest.execute"></a><div id="BatchHttpRequest.execute-def"><a name="L1129"></a><tt class="py-lineno">1129</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="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute all the requests as a single batched HTTP request.</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</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="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest request object was constructed with. If one isn't supplied</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"><tt class="py-docstring"> then use a http object from the requests in this batch.</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"><tt class="py-docstring"> None</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"><tt class="py-docstring"> Raises:</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"><tt class="py-docstring"> httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</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="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-178" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-178', 'http', 'link-48');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">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="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt id="link-179" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1147"></a><tt class="py-lineno">1147</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="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt id="link-179" 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-179', 'request', 'link-45');">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="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-180" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt class="py-keyword">if</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-45');">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="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt id="link-181" class="py-name"><a title="apiclient.http
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <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-48');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-182" 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-182', 'request', 'link-45');">request</a></tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-183', 'http', 'link-48');">http</a></tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-184" class="py-name"><a title="apiclient.http
+<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-184" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-184', 'http', 'link-48');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">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="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-185" 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-185', '_execute', 'link-185');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-186" class="py-name"><a title="apiclient.http
+<a name="L1154"></a><tt class="py-lineno">1154</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="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-185" 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-185', '_execute', 'link-185');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-186" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-186', 'http', 'link-48');">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="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-comment"># Loop over all the requests and check for 401s. For each 401 request the</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</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="L1161"></a><tt class="py-lineno">1161</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="L1162"></a><tt class="py-lineno">1162</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="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</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="L1165"></a><tt class="py-lineno">1165</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">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</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-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="L1167"></a><tt class="py-lineno">1167</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="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt id="link-187" class="py-name"><a title="apiclient.http.HttpMock.request
+<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> <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="L1159"></a><tt class="py-lineno">1159</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="L1160"></a><tt class="py-lineno">1160</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="L1161"></a><tt class="py-lineno">1161</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="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</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="L1164"></a><tt class="py-lineno">1164</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">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</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-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="L1166"></a><tt class="py-lineno">1166</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="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt id="link-187" 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-187', 'request', 'link-45');">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="L1169"></a><tt class="py-lineno">1169</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-188" 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-188', '_refresh_and_apply_credentials', 'link-188');">_refresh_and_apply_credentials</a></tt><tt class="py-op">(</tt><tt id="link-189" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-188" 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-188', '_refresh_and_apply_credentials', 'link-188');">_refresh_and_apply_credentials</a></tt><tt class="py-op">(</tt><tt id="link-189" 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-189', 'request', 'link-45');">request</a></tt><tt class="py-op">,</tt> <tt id="link-190" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-190', 'http', 'link-48');">http</a></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">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-191" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1169"></a><tt class="py-lineno">1169</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-191" 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-191', 'request', 'link-45');">request</a></tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</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="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="apiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-192', '_execute', 'link-185');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-193" class="py-name"><a title="apiclient.http
+<a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</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="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="apiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-192', '_execute', 'link-185');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-193" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-193', 'http', 'link-48');">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="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</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="L1176"></a><tt class="py-lineno">1176</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="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> <tt class="py-comment"># that contains an HttpError?</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</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="L1180"></a><tt class="py-lineno">1180</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">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt id="link-194" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</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="L1175"></a><tt class="py-lineno">1175</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="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"> <tt class="py-comment"># that contains an HttpError?</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</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="L1179"></a><tt class="py-lineno">1179</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">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt id="link-194" 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-194', 'request', 'link-45');">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="L1183"></a><tt class="py-lineno">1183</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="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> <tt id="link-195" class="py-name"><a title="apiclient.model.BaseModel.response
+<a name="L1182"></a><tt class="py-lineno">1182</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="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <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 class="py-name">None</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</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="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt id="link-196" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-196', 'response', 'link-175');">response</a></tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L1185"></a><tt class="py-lineno">1185</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="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</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="L1188"></a><tt class="py-lineno">1188</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-196" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-196', '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 id="link-197" 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-197', 'request', 'link-45');">request</a></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="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-198" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-198', '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="L1190"></a><tt class="py-lineno">1190</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="L1191"></a><tt class="py-lineno">1191</tt> <tt class="py-line"> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</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="L1193"></a><tt class="py-lineno">1193</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-199" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-199', '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="L1194"></a><tt class="py-lineno">1194</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="L1195"></a><tt class="py-lineno">1195</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-200" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-200', '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="L1196"></a><tt class="py-lineno">1196</tt> <tt class="py-line"> </tt>
-<a name="HttpRequestMock"></a><div id="HttpRequestMock-def"><a name="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</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="L1199"></a><tt class="py-lineno">1199</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of HttpRequest.</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"><tt class="py-docstring"> Do not construct directly, instead use RequestMockBuilder.</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"> </tt>
-<a name="HttpRequestMock.__init__"></a><div id="HttpRequestMock.__init__-def"><a name="L1204"></a><tt class="py-lineno">1204</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="L1205"></a><tt class="py-lineno">1205</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for HttpRequestMock</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response to emulate coming from the request</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the response body</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"><tt class="py-docstring"> postproc: callable, the post processing function usually supplied by</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"><tt class="py-docstring"> the model class. See model.JsonModel.response() as an example.</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</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="L1214"></a><tt class="py-lineno">1214</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="L1215"></a><tt class="py-lineno">1215</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="L1216"></a><tt class="py-lineno">1216</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="L1217"></a><tt class="py-lineno">1217</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="L1218"></a><tt class="py-lineno">1218</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="L1219"></a><tt class="py-lineno">1219</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="L1220"></a><tt class="py-lineno">1220</tt> <tt class="py-line"> </tt>
-<a name="HttpRequestMock.execute"></a><div id="HttpRequestMock.execute-def"><a name="L1221"></a><tt class="py-lineno">1221</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="L1222"></a><tt class="py-lineno">1222</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the request.</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"><tt class="py-docstring"> Same behavior as HttpRequest.execute(), but the response is</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"><tt class="py-docstring"> mocked and not really from an HTTP request/response.</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</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="L1228"></a><tt class="py-lineno">1228</tt> <tt class="py-line"> </tt>
-<a name="RequestMockBuilder"></a><div id="RequestMockBuilder-def"><a name="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</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="L1231"></a><tt class="py-lineno">1231</tt> <tt class="py-line"> <tt class="py-docstring">"""A simple mock of HttpRequest</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</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="L1234"></a><tt class="py-lineno">1234</tt> <tt class="py-line"><tt class="py-docstring"> tuples of (httplib2.Response, content, opt_expected_body) that should be</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</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="L1236"></a><tt class="py-lineno">1236</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="L1237"></a><tt class="py-lineno">1237</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="L1238"></a><tt class="py-lineno">1238</tt> <tt class="py-line"><tt class="py-docstring"> the body and UnexpectedBodyError will be raised on inequality.</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"> Example:</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"> response = '{"data": {"id": "tag:google.c...'</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder = RequestMockBuilder(</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"><tt class="py-docstring"> {</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt> <tt class="py-line"><tt class="py-docstring"> 'plus.activities.get': (None, response),</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt> <tt class="py-line"><tt class="py-docstring"> }</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"><tt class="py-docstring"> )</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt> <tt class="py-line"><tt class="py-docstring"> apiclient.discovery.build("plus", "v1", requestBuilder=requestBuilder)</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</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="L1250"></a><tt class="py-lineno">1250</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="L1251"></a><tt class="py-lineno">1251</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="L1252"></a><tt class="py-lineno">1252</tt> <tt class="py-line"><tt class="py-docstring"> in the discovery document.</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"><tt class="py-docstring"> For more details see the project wiki.</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"> </tt>
-<a name="RequestMockBuilder.__init__"></a><div id="RequestMockBuilder.__init__-def"><a name="L1257"></a><tt class="py-lineno">1257</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="L1258"></a><tt class="py-lineno">1258</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for RequestMockBuilder</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"><tt class="py-docstring"> The constructed object should be a callable object</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"><tt class="py-docstring"> that can replace the class HttpResponse.</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"><tt class="py-docstring"> responses - A dictionary that maps methodIds into tuples</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"><tt class="py-docstring"> of (httplib2.Response, content). The methodId</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"><tt class="py-docstring"> comes from the 'rpcName' field in the discovery</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"><tt class="py-docstring"> document.</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"><tt class="py-docstring"> check_unexpected - A boolean setting whether or not UnexpectedMethodError</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"><tt class="py-docstring"> should be raised on unsupplied method.</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</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="L1271"></a><tt class="py-lineno">1271</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="L1272"></a><tt class="py-lineno">1272</tt> <tt class="py-line"> </tt>
-<a name="RequestMockBuilder.__call__"></a><div id="RequestMockBuilder.__call__-def"><a name="L1273"></a><tt class="py-lineno">1273</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="L1274"></a><tt class="py-lineno">1274</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="L1275"></a><tt class="py-lineno">1275</tt> <tt class="py-line"> <tt class="py-docstring">"""Implements the callable interface that discovery.build() expects</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"><tt class="py-docstring"> of requestBuilder, which is to build an object compatible with</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest.execute(). See that method for the description of the</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"><tt class="py-docstring"> parameters and the expected response.</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</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="L1281"></a><tt class="py-lineno">1281</tt> <tt class="py-line"> <tt id="link-201" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-201', '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="L1282"></a><tt class="py-lineno">1282</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-202" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-202', '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="L1283"></a><tt class="py-lineno">1283</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-203" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-203', '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="L1284"></a><tt class="py-lineno">1284</tt> <tt class="py-line"> <tt class="py-comment"># Test the body against the supplied expected_body.</tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt id="link-204" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-204', '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="L1286"></a><tt class="py-lineno">1286</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="L1287"></a><tt class="py-lineno">1287</tt> <tt class="py-line"> <tt class="py-comment"># Not expecting a body and provided one</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"> <tt class="py-comment"># or expecting a body and not provided one.</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-205" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-205', '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="L1290"></a><tt class="py-lineno">1290</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="L1291"></a><tt class="py-lineno">1291</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-206" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-206', '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="L1292"></a><tt class="py-lineno">1292</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-207" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-207', '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="L1293"></a><tt class="py-lineno">1293</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="L1294"></a><tt class="py-lineno">1294</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-208" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-208', '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="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-209" 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-209', 'HttpRequestMock', 'link-209');">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="L1296"></a><tt class="py-lineno">1296</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="L1297"></a><tt class="py-lineno">1297</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-210" class="py-name"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-210', '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="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"> <tt id="link-211" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-211', 'model', 'link-11');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-212', '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="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-213" class="py-name"><a title="apiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-213', 'HttpRequestMock', 'link-209');">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-214" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-214', 'model', 'link-11');">model</a></tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-215', 'response', 'link-175');">response</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> </tt>
-<a name="HttpMock"></a><div id="HttpMock-def"><a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</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="L1304"></a><tt class="py-lineno">1304</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http"""</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> </tt>
-<a name="HttpMock.__init__"></a><div id="HttpMock.__init__-def"><a name="L1306"></a><tt class="py-lineno">1306</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="L1307"></a><tt class="py-lineno">1307</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, absolute filename to read response from</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"><tt class="py-docstring"> headers: dict, header to return with response</tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</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="L1313"></a><tt class="py-lineno">1313</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="L1314"></a><tt class="py-lineno">1314</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-216" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-216', 'file', 'link-216');">file</a></tt><tt class="py-op">(</tt><tt id="link-217" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-217', '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="L1315"></a><tt class="py-lineno">1315</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="L1316"></a><tt class="py-lineno">1316</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="L1317"></a><tt class="py-lineno">1317</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="L1318"></a><tt class="py-lineno">1318</tt> <tt class="py-line"> </tt>
-<a name="HttpMock.request"></a><div id="HttpMock.request-def"><a name="L1319"></a><tt class="py-lineno">1319</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="L1320"></a><tt class="py-lineno">1320</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="L1321"></a><tt class="py-lineno">1321</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="L1322"></a><tt class="py-lineno">1322</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="L1323"></a><tt class="py-lineno">1323</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="L1324"></a><tt class="py-lineno">1324</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="L1325"></a><tt class="py-lineno">1325</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="L1326"></a><tt class="py-lineno">1326</tt> <tt class="py-line"> </tt>
-<a name="HttpMockSequence"></a><div id="HttpMockSequence-def"><a name="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</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="L1329"></a><tt class="py-lineno">1329</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</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="L1332"></a><tt class="py-lineno">1332</tt> <tt class="py-line"><tt class="py-docstring"> call. Create an instance initialized with the desired response headers</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"><tt class="py-docstring"> and content and then use as if an httplib2.Http instance.</tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"><tt class="py-docstring"> http = HttpMockSequence([</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '401'}, ''),</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, '{"access_token":"1/3w","expires_in":3600}'),</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, 'echo_request_headers'),</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"><tt class="py-docstring"> ])</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"><tt class="py-docstring"> resp, content = http.request("http://examples.com")</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</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="L1343"></a><tt class="py-lineno">1343</tt> <tt class="py-line"><tt class="py-docstring"> behavours that are helpful in testing.</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</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="L1346"></a><tt class="py-lineno">1346</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_headers_as_json' means return the request headers in</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"><tt class="py-docstring"> the response body</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</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="L1349"></a><tt class="py-lineno">1349</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="L1350"></a><tt class="py-lineno">1350</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"> </tt>
-<a name="HttpMockSequence.__init__"></a><div id="HttpMockSequence.__init__-def"><a name="L1352"></a><tt class="py-lineno">1352</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="L1353"></a><tt class="py-lineno">1353</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"><tt class="py-docstring"> iterable: iterable, a sequence of pairs of (headers, body)</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</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>
-<a name="L1358"></a><tt class="py-lineno">1358</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">follow_redirects</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> </tt>
-<a name="HttpMockSequence.request"></a><div id="HttpMockSequence.request-def"><a name="L1360"></a><tt class="py-lineno">1360</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="L1361"></a><tt class="py-lineno">1361</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="L1362"></a><tt class="py-lineno">1362</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="L1363"></a><tt class="py-lineno">1363</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="L1364"></a><tt class="py-lineno">1364</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="L1365"></a><tt class="py-lineno">1365</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="L1366"></a><tt class="py-lineno">1366</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="L1367"></a><tt class="py-lineno">1367</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="L1368"></a><tt class="py-lineno">1368</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="L1369"></a><tt class="py-lineno">1369</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="L1370"></a><tt class="py-lineno">1370</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="L1371"></a><tt class="py-lineno">1371</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="L1372"></a><tt class="py-lineno">1372</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="L1373"></a><tt class="py-lineno">1373</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="L1374"></a><tt class="py-lineno">1374</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="L1375"></a><tt class="py-lineno">1375</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="L1376"></a><tt class="py-lineno">1376</tt> <tt class="py-line"> </tt>
-<a name="set_user_agent"></a><div id="set_user_agent-def"><a name="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</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="L1379"></a><tt class="py-lineno">1379</tt> <tt class="py-line"> <tt class="py-docstring">"""Set the user-agent on every request.</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: string, the value for the user-agent header.</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"><tt class="py-docstring"> h = set_user_agent(h, "my-app-name/6.0")</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</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="L1395"></a><tt class="py-lineno">1395</tt> <tt class="py-line"><tt class="py-docstring"> cases where you are accessing an unauthenticated endpoint.</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-218', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-197', 'request', 'link-45');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt> <tt class="py-line"> <tt id="link-198" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-198', 'response', 'link-175');">response</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-219', 'request', 'link-45');">request</a></tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</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="L1401"></a><tt class="py-lineno">1401</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="L1402"></a><tt class="py-lineno">1402</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="L1403"></a><tt class="py-lineno">1403</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</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="L1405"></a><tt class="py-lineno">1405</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="L1406"></a><tt class="py-lineno">1406</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="L1407"></a><tt class="py-lineno">1407</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="L1408"></a><tt class="py-lineno">1408</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</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="L1410"></a><tt class="py-lineno">1410</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="L1411"></a><tt class="py-lineno">1411</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="L1412"></a><tt class="py-lineno">1412</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="L1413"></a><tt class="py-lineno">1413</tt> <tt class="py-line"> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> <tt id="link-220" class="py-name"><a title="apiclient.http
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-199', 'request', 'link-45');">request</a></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="L1190"></a><tt class="py-lineno">1190</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-200" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-200', '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="L1191"></a><tt class="py-lineno">1191</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="L1192"></a><tt class="py-lineno">1192</tt> <tt class="py-line"> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</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="L1194"></a><tt class="py-lineno">1194</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-201" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-201', '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="L1195"></a><tt class="py-lineno">1195</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="L1196"></a><tt class="py-lineno">1196</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-202" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-202', '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="L1197"></a><tt class="py-lineno">1197</tt> <tt class="py-line"> </tt>
+<a name="HttpRequestMock"></a><div id="HttpRequestMock-def"><a name="L1198"></a><tt class="py-lineno">1198</tt> <tt class="py-line"> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt> <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="L1200"></a><tt class="py-lineno">1200</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of HttpRequest.</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt> <tt class="py-line"><tt class="py-docstring"> Do not construct directly, instead use RequestMockBuilder.</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt> <tt class="py-line"> </tt>
+<a name="HttpRequestMock.__init__"></a><div id="HttpRequestMock.__init__-def"><a name="L1205"></a><tt class="py-lineno">1205</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="L1206"></a><tt class="py-lineno">1206</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for HttpRequestMock</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt> <tt class="py-line"><tt class="py-docstring"> resp: httplib2.Response, the response to emulate coming from the request</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt> <tt class="py-line"><tt class="py-docstring"> content: string, the response body</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt> <tt class="py-line"><tt class="py-docstring"> postproc: callable, the post processing function usually supplied by</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt> <tt class="py-line"><tt class="py-docstring"> the model class. See model.JsonModel.response() as an example.</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</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="L1215"></a><tt class="py-lineno">1215</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="L1216"></a><tt class="py-lineno">1216</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="L1217"></a><tt class="py-lineno">1217</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="L1218"></a><tt class="py-lineno">1218</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="L1219"></a><tt class="py-lineno">1219</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="L1220"></a><tt class="py-lineno">1220</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="L1221"></a><tt class="py-lineno">1221</tt> <tt class="py-line"> </tt>
+<a name="HttpRequestMock.execute"></a><div id="HttpRequestMock.execute-def"><a name="L1222"></a><tt class="py-lineno">1222</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="L1223"></a><tt class="py-lineno">1223</tt> <tt class="py-line"> <tt class="py-docstring">"""Execute the request.</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt> <tt class="py-line"><tt class="py-docstring"> Same behavior as HttpRequest.execute(), but the response is</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt> <tt class="py-line"><tt class="py-docstring"> mocked and not really from an HTTP request/response.</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</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="L1229"></a><tt class="py-lineno">1229</tt> <tt class="py-line"> </tt>
+<a name="RequestMockBuilder"></a><div id="RequestMockBuilder-def"><a name="L1230"></a><tt class="py-lineno">1230</tt> <tt class="py-line"> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</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="L1232"></a><tt class="py-lineno">1232</tt> <tt class="py-line"> <tt class="py-docstring">"""A simple mock of HttpRequest</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</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="L1235"></a><tt class="py-lineno">1235</tt> <tt class="py-line"><tt class="py-docstring"> tuples of (httplib2.Response, content, opt_expected_body) that should be</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</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="L1237"></a><tt class="py-lineno">1237</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="L1238"></a><tt class="py-lineno">1238</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="L1239"></a><tt class="py-lineno">1239</tt> <tt class="py-line"><tt class="py-docstring"> the body and UnexpectedBodyError will be raised on inequality.</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt> <tt class="py-line"><tt class="py-docstring"> response = '{"data": {"id": "tag:google.c...'</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt> <tt class="py-line"><tt class="py-docstring"> requestBuilder = RequestMockBuilder(</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"> 'plus.activities.get': (None, response),</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt> <tt class="py-line"><tt class="py-docstring"> }</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"> apiclient.discovery.build("plus", "v1", requestBuilder=requestBuilder)</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</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="L1251"></a><tt class="py-lineno">1251</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="L1252"></a><tt class="py-lineno">1252</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="L1253"></a><tt class="py-lineno">1253</tt> <tt class="py-line"><tt class="py-docstring"> in the discovery document.</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt> <tt class="py-line"><tt class="py-docstring"> For more details see the project wiki.</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt> <tt class="py-line"> </tt>
+<a name="RequestMockBuilder.__init__"></a><div id="RequestMockBuilder.__init__-def"><a name="L1258"></a><tt class="py-lineno">1258</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="L1259"></a><tt class="py-lineno">1259</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for RequestMockBuilder</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt> <tt class="py-line"><tt class="py-docstring"> The constructed object should be a callable object</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt> <tt class="py-line"><tt class="py-docstring"> that can replace the class HttpResponse.</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt> <tt class="py-line"><tt class="py-docstring"> responses - A dictionary that maps methodIds into tuples</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt> <tt class="py-line"><tt class="py-docstring"> of (httplib2.Response, content). The methodId</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt> <tt class="py-line"><tt class="py-docstring"> comes from the 'rpcName' field in the discovery</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt> <tt class="py-line"><tt class="py-docstring"> document.</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt> <tt class="py-line"><tt class="py-docstring"> check_unexpected - A boolean setting whether or not UnexpectedMethodError</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt> <tt class="py-line"><tt class="py-docstring"> should be raised on unsupplied method.</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</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="L1272"></a><tt class="py-lineno">1272</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="L1273"></a><tt class="py-lineno">1273</tt> <tt class="py-line"> </tt>
+<a name="RequestMockBuilder.__call__"></a><div id="RequestMockBuilder.__call__-def"><a name="L1274"></a><tt class="py-lineno">1274</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="L1275"></a><tt class="py-lineno">1275</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="L1276"></a><tt class="py-lineno">1276</tt> <tt class="py-line"> <tt class="py-docstring">"""Implements the callable interface that discovery.build() expects</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt> <tt class="py-line"><tt class="py-docstring"> of requestBuilder, which is to build an object compatible with</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt> <tt class="py-line"><tt class="py-docstring"> HttpRequest.execute(). See that method for the description of the</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt> <tt class="py-line"><tt class="py-docstring"> parameters and the expected response.</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-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="L1282"></a><tt class="py-lineno">1282</tt> <tt class="py-line"> <tt id="link-203" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-203', '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="L1283"></a><tt class="py-lineno">1283</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-204" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-204', '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="L1284"></a><tt class="py-lineno">1284</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-205" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-205', '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="L1285"></a><tt class="py-lineno">1285</tt> <tt class="py-line"> <tt class="py-comment"># Test the body against the supplied expected_body.</tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt> <tt class="py-line"> <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt id="link-206" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-206', '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="L1287"></a><tt class="py-lineno">1287</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="L1288"></a><tt class="py-lineno">1288</tt> <tt class="py-line"> <tt class="py-comment"># Not expecting a body and provided one</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt> <tt class="py-line"> <tt class="py-comment"># or expecting a body and not provided one.</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-207" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-207', '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="L1291"></a><tt class="py-lineno">1291</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="L1292"></a><tt class="py-lineno">1292</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-208" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-208', '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="L1293"></a><tt class="py-lineno">1293</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-209" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-209', '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="L1294"></a><tt class="py-lineno">1294</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="L1295"></a><tt class="py-lineno">1295</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-210" class="py-name"><a title="apiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-210', '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="L1296"></a><tt class="py-lineno">1296</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-211" 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-211', 'HttpRequestMock', 'link-211');">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="L1297"></a><tt class="py-lineno">1297</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="L1298"></a><tt class="py-lineno">1298</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-212" class="py-name"><a title="apiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-212', '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="L1299"></a><tt class="py-lineno">1299</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt> <tt class="py-line"> <tt id="link-213" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-213', 'model', 'link-11');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-214" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-214', '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="L1301"></a><tt class="py-lineno">1301</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-215" class="py-name"><a title="apiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-215', 'HttpRequestMock', 'link-211');">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-216" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-216', 'model', 'link-11');">model</a></tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-217', 'response', 'link-175');">response</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1302"></a><tt class="py-lineno">1302</tt> <tt class="py-line"> </tt>
+<a name="HttpMock"></a><div id="HttpMock-def"><a name="L1303"></a><tt class="py-lineno">1303</tt> <tt class="py-line"> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</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="L1305"></a><tt class="py-lineno">1305</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http"""</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt> <tt class="py-line"> </tt>
+<a name="HttpMock.__init__"></a><div id="HttpMock.__init__-def"><a name="L1307"></a><tt class="py-lineno">1307</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="L1308"></a><tt class="py-lineno">1308</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt> <tt class="py-line"><tt class="py-docstring"> filename: string, absolute filename to read response from</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt> <tt class="py-line"><tt class="py-docstring"> headers: dict, header to return with response</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</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="L1314"></a><tt class="py-lineno">1314</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="L1315"></a><tt class="py-lineno">1315</tt> <tt class="py-line"> <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-218', 'file', 'link-218');">file</a></tt><tt class="py-op">(</tt><tt id="link-219" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-219', '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="L1316"></a><tt class="py-lineno">1316</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="L1317"></a><tt class="py-lineno">1317</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="L1318"></a><tt class="py-lineno">1318</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="L1319"></a><tt class="py-lineno">1319</tt> <tt class="py-line"> </tt>
+<a name="HttpMock.request"></a><div id="HttpMock.request-def"><a name="L1320"></a><tt class="py-lineno">1320</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="L1321"></a><tt class="py-lineno">1321</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="L1322"></a><tt class="py-lineno">1322</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="L1323"></a><tt class="py-lineno">1323</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="L1324"></a><tt class="py-lineno">1324</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="L1325"></a><tt class="py-lineno">1325</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="L1326"></a><tt class="py-lineno">1326</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="L1327"></a><tt class="py-lineno">1327</tt> <tt class="py-line"> </tt>
+<a name="HttpMockSequence"></a><div id="HttpMockSequence-def"><a name="L1328"></a><tt class="py-lineno">1328</tt> <tt class="py-line"> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</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="L1330"></a><tt class="py-lineno">1330</tt> <tt class="py-line"> <tt class="py-docstring">"""Mock of httplib2.Http</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</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="L1333"></a><tt class="py-lineno">1333</tt> <tt class="py-line"><tt class="py-docstring"> call. Create an instance initialized with the desired response headers</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt> <tt class="py-line"><tt class="py-docstring"> and content and then use as if an httplib2.Http instance.</tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt> <tt class="py-line"><tt class="py-docstring"> http = HttpMockSequence([</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '401'}, ''),</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, '{"access_token":"1/3w","expires_in":3600}'),</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt> <tt class="py-line"><tt class="py-docstring"> ({'status': '200'}, 'echo_request_headers'),</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt> <tt class="py-line"><tt class="py-docstring"> ])</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt> <tt class="py-line"><tt class="py-docstring"> resp, content = http.request("http://examples.com")</tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</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="L1344"></a><tt class="py-lineno">1344</tt> <tt class="py-line"><tt class="py-docstring"> behavours that are helpful in testing.</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</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="L1347"></a><tt class="py-lineno">1347</tt> <tt class="py-line"><tt class="py-docstring"> 'echo_request_headers_as_json' means return the request headers in</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt> <tt class="py-line"><tt class="py-docstring"> the response body</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</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="L1350"></a><tt class="py-lineno">1350</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="L1351"></a><tt class="py-lineno">1351</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt> <tt class="py-line"> </tt>
+<a name="HttpMockSequence.__init__"></a><div id="HttpMockSequence.__init__-def"><a name="L1353"></a><tt class="py-lineno">1353</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="L1354"></a><tt class="py-lineno">1354</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt> <tt class="py-line"><tt class="py-docstring"> iterable: iterable, a sequence of pairs of (headers, body)</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</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>
+<a name="L1359"></a><tt class="py-lineno">1359</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">follow_redirects</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L1360"></a><tt class="py-lineno">1360</tt> <tt class="py-line"> </tt>
+<a name="HttpMockSequence.request"></a><div id="HttpMockSequence.request-def"><a name="L1361"></a><tt class="py-lineno">1361</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="L1362"></a><tt class="py-lineno">1362</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="L1363"></a><tt class="py-lineno">1363</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="L1364"></a><tt class="py-lineno">1364</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="L1365"></a><tt class="py-lineno">1365</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="L1366"></a><tt class="py-lineno">1366</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="L1367"></a><tt class="py-lineno">1367</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="L1368"></a><tt class="py-lineno">1368</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="L1369"></a><tt class="py-lineno">1369</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="L1370"></a><tt class="py-lineno">1370</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="L1371"></a><tt class="py-lineno">1371</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="L1372"></a><tt class="py-lineno">1372</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="L1373"></a><tt class="py-lineno">1373</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="L1374"></a><tt class="py-lineno">1374</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="L1375"></a><tt class="py-lineno">1375</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="L1376"></a><tt class="py-lineno">1376</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="L1377"></a><tt class="py-lineno">1377</tt> <tt class="py-line"> </tt>
+<a name="set_user_agent"></a><div id="set_user_agent-def"><a name="L1378"></a><tt class="py-lineno">1378</tt> <tt class="py-line"> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</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="L1380"></a><tt class="py-lineno">1380</tt> <tt class="py-line"> <tt class="py-docstring">"""Set the user-agent on every request.</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt> <tt class="py-line"><tt class="py-docstring"> user_agent: string, the value for the user-agent header.</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt> <tt class="py-line"><tt class="py-docstring"> h = set_user_agent(h, "my-app-name/6.0")</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</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="L1396"></a><tt class="py-lineno">1396</tt> <tt class="py-line"><tt class="py-docstring"> cases where you are accessing an unauthenticated endpoint.</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="apiclient.http
oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-220', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-221" 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-221', 'request', 'link-45');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-222" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-222', 'http', 'link-48');">http</a></tt> </tt>
-</div><a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"> </tt>
-<a name="tunnel_patch"></a><div id="tunnel_patch-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</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="L1419"></a><tt class="py-lineno">1419</tt> <tt class="py-line"> <tt class="py-docstring">"""Tunnel PATCH requests over POST.</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"><tt class="py-docstring"> h = tunnel_patch(h, "my-app-name/6.0")</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</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="L1433"></a><tt class="py-lineno">1433</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="L1434"></a><tt class="py-lineno">1434</tt> <tt class="py-line"><tt class="py-docstring"> will result in a different signature.</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-223" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-223', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-221', 'request', 'link-45');">request</a></tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt> <tt class="py-line"> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</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="L1402"></a><tt class="py-lineno">1402</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="L1403"></a><tt class="py-lineno">1403</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="L1404"></a><tt class="py-lineno">1404</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</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="L1406"></a><tt class="py-lineno">1406</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="L1407"></a><tt class="py-lineno">1407</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="L1408"></a><tt class="py-lineno">1408</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="L1409"></a><tt class="py-lineno">1409</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</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="L1411"></a><tt class="py-lineno">1411</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="L1412"></a><tt class="py-lineno">1412</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="L1413"></a><tt class="py-lineno">1413</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="L1414"></a><tt class="py-lineno">1414</tt> <tt class="py-line"> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt> <tt class="py-line"> <tt id="link-222" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-222', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-223" 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-224', 'request', 'link-45');">request</a></tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</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="L1440"></a><tt class="py-lineno">1440</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="L1441"></a><tt class="py-lineno">1441</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="L1442"></a><tt class="py-lineno">1442</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</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="L1444"></a><tt class="py-lineno">1444</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="L1445"></a><tt class="py-lineno">1445</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="L1446"></a><tt class="py-lineno">1446</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-225" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-223', 'request', 'link-45');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-224" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-224', 'http', 'link-48');">http</a></tt> </tt>
+</div><a name="L1417"></a><tt class="py-lineno">1417</tt> <tt class="py-line"> </tt>
+<a name="tunnel_patch"></a><div id="tunnel_patch-def"><a name="L1418"></a><tt class="py-lineno">1418</tt> <tt class="py-line"> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</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="L1420"></a><tt class="py-lineno">1420</tt> <tt class="py-line"> <tt class="py-docstring">"""Tunnel PATCH requests over POST.</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt> <tt class="py-line"><tt class="py-docstring"> http - An instance of httplib2.Http</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt> <tt class="py-line"><tt class="py-docstring"> or something that acts like it.</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt> <tt class="py-line"><tt class="py-docstring"> A modified instance of http that was passed in.</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt> <tt class="py-line"><tt class="py-docstring"> Example:</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt> <tt class="py-line"><tt class="py-docstring"> h = httplib2.Http()</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt> <tt class="py-line"><tt class="py-docstring"> h = tunnel_patch(h, "my-app-name/6.0")</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</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="L1434"></a><tt class="py-lineno">1434</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="L1435"></a><tt class="py-lineno">1435</tt> <tt class="py-line"><tt class="py-docstring"> will result in a different signature.</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt> <tt class="py-line"> <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-225" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-225', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-226" 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-226', 'request', 'link-45');">request</a></tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt> <tt class="py-line"> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt> <tt class="py-line"> <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</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="L1441"></a><tt class="py-lineno">1441</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="L1442"></a><tt class="py-lineno">1442</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="L1443"></a><tt class="py-lineno">1443</tt> <tt class="py-line"> <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</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="L1445"></a><tt class="py-lineno">1445</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="L1446"></a><tt class="py-lineno">1446</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="L1447"></a><tt class="py-lineno">1447</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-227" 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-225', 'get', 'link-63');">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="L1447"></a><tt class="py-lineno">1447</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="L1448"></a><tt class="py-lineno">1448</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="L1449"></a><tt class="py-lineno">1449</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="L1450"></a><tt class="py-lineno">1450</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="L1451"></a><tt class="py-lineno">1451</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="L1452"></a><tt class="py-lineno">1452</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="L1453"></a><tt class="py-lineno">1453</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="L1454"></a><tt class="py-lineno">1454</tt> <tt class="py-line"> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> <tt id="link-226" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-226', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="apiclient.http.HttpMock.request
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-227', 'get', 'link-63');">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="L1448"></a><tt class="py-lineno">1448</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="L1449"></a><tt class="py-lineno">1449</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="L1450"></a><tt class="py-lineno">1450</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="L1451"></a><tt class="py-lineno">1451</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="L1452"></a><tt class="py-lineno">1452</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="L1453"></a><tt class="py-lineno">1453</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="L1454"></a><tt class="py-lineno">1454</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="L1455"></a><tt class="py-lineno">1455</tt> <tt class="py-line"> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt id="link-228" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-228', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-229" 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-227', 'request', 'link-45');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-228" class="py-name"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-228', 'http', 'link-48');">http</a></tt> </tt>
-</div><a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> </tt><script type="text/javascript">
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-229', 'request', 'link-45');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-230" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-230', 'http', 'link-48');">http</a></tt> </tt>
+</div><a name="L1458"></a><tt class="py-lineno">1458</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -1905,7 +1909,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 e95bb37..e4b681d 100644
--- a/docs/epy/apiclient.http.BatchHttpRequest-class.html
+++ b/docs/epy/apiclient.http.BatchHttpRequest-class.html
@@ -652,7 +652,7 @@
request: list, list of request objects to send.
Raises:
- httplib2.Error if a transport error has occured.
+ httplib2.HttpLib2Error if a transport error has occured.
apiclient.errors.BatchError if the response is the wrong format.
</pre>
@@ -687,7 +687,7 @@
None
Raises:
- httplib2.Error if a transport error has occured.
+ httplib2.HttpLib2Error if a transport error has occured.
apiclient.errors.BatchError if the response is the wrong format.
</pre>
@@ -719,7 +719,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 911234a..3f8a580 100644
--- a/docs/epy/apiclient.http.HttpMock-class.html
+++ b/docs/epy/apiclient.http.HttpMock-class.html
@@ -242,7 +242,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 d040fe3..b5fbb7a 100644
--- a/docs/epy/apiclient.http.HttpMockSequence-class.html
+++ b/docs/epy/apiclient.http.HttpMockSequence-class.html
@@ -259,7 +259,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 872cd65..7403981 100644
--- a/docs/epy/apiclient.http.HttpRequest-class.html
+++ b/docs/epy/apiclient.http.HttpRequest-class.html
@@ -354,7 +354,7 @@
Raises:
apiclient.errors.HttpError if the response was not a 2xx.
- httplib2.Error if a transport error has occured.
+ httplib2.HttpLib2Error if a transport error has occured.
</pre>
<dl class="fields">
@@ -404,7 +404,7 @@
Raises:
apiclient.errors.HttpError if the response was not a 2xx.
- httplib2.Error if a transport error has occured.
+ httplib2.HttpLib2Error if a transport error has occured.
</pre>
<dl class="fields">
@@ -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 Mon Jul 23 15:49:57 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 ea2d289..18790a9 100644
--- a/docs/epy/apiclient.http.HttpRequestMock-class.html
+++ b/docs/epy/apiclient.http.HttpRequestMock-class.html
@@ -271,7 +271,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaDownloadProgress-class.html b/docs/epy/apiclient.http.MediaDownloadProgress-class.html
index e2e460a..5dc5ddf 100644
--- a/docs/epy/apiclient.http.MediaDownloadProgress-class.html
+++ b/docs/epy/apiclient.http.MediaDownloadProgress-class.html
@@ -264,7 +264,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 e35105e..af48840 100644
--- a/docs/epy/apiclient.http.MediaFileUpload-class.html
+++ b/docs/epy/apiclient.http.MediaFileUpload-class.html
@@ -584,7 +584,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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 debd5b9..ea37df9 100644
--- a/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
+++ b/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
@@ -576,7 +576,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaIoBaseDownload-class.html b/docs/epy/apiclient.http.MediaIoBaseDownload-class.html
index 5b8b01f..cea21e1 100644
--- a/docs/epy/apiclient.http.MediaIoBaseDownload-class.html
+++ b/docs/epy/apiclient.http.MediaIoBaseDownload-class.html
@@ -259,7 +259,7 @@
Raises:
apiclient.errors.HttpError if the response was not a 2xx.
- httplib2.Error if a transport error has occured.
+ httplib2.HttpLib2Error if a transport error has occured.
</pre>
<dl class="fields">
@@ -290,7 +290,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 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
index e4854dc..6b3f1ee 100644
--- a/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
+++ b/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
@@ -547,7 +547,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:26 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaUpload-class.html b/docs/epy/apiclient.http.MediaUpload-class.html
index 57c5e4d..c34e1dc 100644
--- a/docs/epy/apiclient.http.MediaUpload-class.html
+++ b/docs/epy/apiclient.http.MediaUpload-class.html
@@ -562,7 +562,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 4ef1c09..b63d4af 100644
--- a/docs/epy/apiclient.http.MediaUploadProgress-class.html
+++ b/docs/epy/apiclient.http.MediaUploadProgress-class.html
@@ -265,7 +265,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 0340f9b..be1293a 100644
--- a/docs/epy/apiclient.http.RequestMockBuilder-class.html
+++ b/docs/epy/apiclient.http.RequestMockBuilder-class.html
@@ -311,7 +311,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 461d63a..038b9e2 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 a405eec..31859ea 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 Mon Jul 23 15:50:06 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 f34e837..064a3dd 100644
--- a/docs/epy/apiclient.model-module.html
+++ b/docs/epy/apiclient.model-module.html
@@ -300,7 +300,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 cb8b220..78bdbba 100644
--- a/docs/epy/apiclient.model-pysrc.html
+++ b/docs/epy/apiclient.model-pysrc.html
@@ -86,9 +86,11 @@
<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Module apiclient.errors=apiclient.errors-module.html"><a title="apiclient.errors" class="py-name" href="#" onclick="return doclink('link-0', 'errors', 'link-0');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" 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-1', 'HttpError', 'link-1');">HttpError</a></tt> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name" targets="Package oauth2client=oauth2client-module.html"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-2', 'oauth2client', 'link-2');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module oauth2client.anyjson=oauth2client.anyjson-module.html"><a title="oauth2client.anyjson" class="py-name" href="#" onclick="return doclink('link-3', 'anyjson', 'link-3');">anyjson</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">simplejson</tt> </tt>
<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 id="link-4" class="py-name" targets="Variable apiclient.model.FLAGS=apiclient.model-module.html#FLAGS,Variable oauth2client.tools.FLAGS=oauth2client.tools-module.html#FLAGS"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-4', 'FLAGS', 'link-4');">FLAGS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gflags</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-5', 'FLAGS', 'link-4');">FLAGS</a></tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable apiclient.model.FLAGS=apiclient.model-module.html#FLAGS,Variable oauth2client.tools.FLAGS=oauth2client.tools-module.html#FLAGS,Variable oauth2client.util.FLAGS=oauth2client.util-module.html#FLAGS"><a title="apiclient.model.FLAGS
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-4', 'FLAGS', 'link-4');">FLAGS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gflags</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="apiclient.model.FLAGS
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-5', 'FLAGS', 'link-4');">FLAGS</a></tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-name">gflags</tt><tt class="py-op">.</tt><tt class="py-name">DEFINE_boolean</tt><tt class="py-op">(</tt><tt class="py-string">'dump_request_response'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-string">'Dump all http server requests and responses. '</tt> </tt>
@@ -182,7 +184,8 @@
<a name="BaseModel._log_request"></a><div id="BaseModel._log_request-def"><a name="L107"></a><tt class="py-lineno">107</tt> <a class="py-toggle" href="#" id="BaseModel._log_request-toggle" onclick="return toggle('BaseModel._log_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.model.BaseModel-class.html#_log_request">_log_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="BaseModel._log_request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._log_request-expanded"><a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-docstring">"""Logs debugging information about the request if requested."""</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-12" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-12', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">dump_request_response</tt><tt class="py-op">:</tt> </tt>
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-12', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">dump_request_response</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">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--request-start--'</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">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-headers-start-'</tt><tt class="py-op">)</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</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>
@@ -272,7 +275,8 @@
<a name="BaseModel._log_response"></a><div id="BaseModel._log_response-def"><a name="L178"></a><tt class="py-lineno">178</tt> <a class="py-toggle" href="#" id="BaseModel._log_response-toggle" onclick="return toggle('BaseModel._log_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.model.BaseModel-class.html#_log_response">_log_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="BaseModel._log_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._log_response-expanded"><a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-docstring">"""Logs debugging information about the response if requested."""</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-21" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-21', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">dump_request_response</tt><tt class="py-op">:</tt> </tt>
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-21', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">dump_request_response</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">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--response-start--'</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">for</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</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="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
@@ -569,7 +573,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 923c1dc..7fdfd4f 100644
--- a/docs/epy/apiclient.model.BaseModel-class.html
+++ b/docs/epy/apiclient.model.BaseModel-class.html
@@ -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 Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 1654764..b6345bb 100644
--- a/docs/epy/apiclient.model.JsonModel-class.html
+++ b/docs/epy/apiclient.model.JsonModel-class.html
@@ -417,7 +417,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.MediaModel-class.html b/docs/epy/apiclient.model.MediaModel-class.html
index a24b4c1..5e35cb8 100644
--- a/docs/epy/apiclient.model.MediaModel-class.html
+++ b/docs/epy/apiclient.model.MediaModel-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 Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 b7b9ab0..cc4557e 100644
--- a/docs/epy/apiclient.model.Model-class.html
+++ b/docs/epy/apiclient.model.Model-class.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 Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 e60b9a7..dfdefb6 100644
--- a/docs/epy/apiclient.model.ProtocolBufferModel-class.html
+++ b/docs/epy/apiclient.model.ProtocolBufferModel-class.html
@@ -419,7 +419,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 07282ee..c0638b4 100644
--- a/docs/epy/apiclient.model.RawModel-class.html
+++ b/docs/epy/apiclient.model.RawModel-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 Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 86d9845..ec32fbb 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 603c915..6459a59 100644
--- a/docs/epy/apiclient.schema-pysrc.html
+++ b/docs/epy/apiclient.schema-pysrc.html
@@ -438,7 +438,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 b26d785..5a111d1 100644
--- a/docs/epy/apiclient.schema.Schemas-class.html
+++ b/docs/epy/apiclient.schema.Schemas-class.html
@@ -467,7 +467,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 c9c1ace..7ca96ee 100644
--- a/docs/epy/apiclient.schema._SchemaToStruct-class.html
+++ b/docs/epy/apiclient.schema._SchemaToStruct-class.html
@@ -492,7 +492,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 855a7f1..22c3048 100644
--- a/docs/epy/class-tree.html
+++ b/docs/epy/class-tree.html
@@ -110,6 +110,14 @@
</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.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>
@@ -175,14 +183,6 @@
</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.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>
@@ -275,6 +275,14 @@
<li> <strong class="uidlink"><a href="oauth2client.client.MemoryCache-class.html">oauth2client.client.MemoryCache</a></strong>:
<em class="summary">httplib2 Cache implementation which only caches locally.</em>
</li>
+ <li> <strong class="uidlink">google.appengine.ext.db.Model</strong>:
+ <em class="summary">Model is the superclass of all object entities in the datastore.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="oauth2client.appengine.CredentialsModel-class.html">oauth2client.appengine.CredentialsModel</a></strong>:
+ <em class="summary">Storage for OAuth 2.0 Credentials</em>
+ </li>
+ </ul>
+ </li>
<li> <strong class="uidlink"><a href="apiclient.model.Model-class.html">apiclient.model.Model</a></strong>:
<em class="summary">Model base class.</em>
<ul>
@@ -299,14 +307,6 @@
</li>
</ul>
</li>
- <li> <strong class="uidlink">google.appengine.ext.db.Model</strong>:
- <em class="summary">Model is the superclass of all object entities in the datastore.</em>
- <ul>
- <li> <strong class="uidlink"><a href="oauth2client.appengine.CredentialsModel-class.html">oauth2client.appengine.CredentialsModel</a></strong>:
- <em class="summary">Storage for OAuth 2.0 Credentials</em>
- </li>
- </ul>
- </li>
<li> <strong class="uidlink"><a href="oauth2client.appengine.OAuth2Decorator-class.html">oauth2client.appengine.OAuth2Decorator</a></strong>:
<em class="summary">Utility for making OAuth 2.0 easier.</em>
<ul>
@@ -346,13 +346,16 @@
<li> <strong class="uidlink"><a href="oauth2client.client.Storage-class.html">oauth2client.client.Storage</a></strong>:
<em class="summary">Base class for all Storage objects.</em>
<ul>
- <li> <strong class="uidlink"><a href="oauth2client.django_orm.Storage-class.html">oauth2client.django_orm.Storage</a></strong>:
- <em class="summary">Store and retrieve a single credential to and from
-the datastore.</em>
+ <li> <strong class="uidlink"><a href="oauth2client.keyring_storage.Storage-class.html">oauth2client.keyring_storage.Storage</a></strong>:
+ <em class="summary">Store and retrieve a single credential to and from the keyring.</em>
</li>
<li> <strong class="uidlink"><a href="oauth2client.file.Storage-class.html">oauth2client.file.Storage</a></strong>:
<em class="summary">Store and retrieve a single credential to and from a file.</em>
</li>
+ <li> <strong class="uidlink"><a href="oauth2client.django_orm.Storage-class.html">oauth2client.django_orm.Storage</a></strong>:
+ <em class="summary">Store and retrieve a single credential to and from
+the datastore.</em>
+ </li>
<li> <strong class="uidlink"><a href="oauth2client.appengine.StorageByKeyName-class.html">oauth2client.appengine.StorageByKeyName</a></strong>:
<em class="summary">Store and retrieve a single credential to and from
the App Engine datastore.</em>
@@ -419,7 +422,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/class_hierarchy_for_storage.gif b/docs/epy/class_hierarchy_for_storage.gif
index 8cddc1e..5843b53 100644
--- a/docs/epy/class_hierarchy_for_storage.gif
+++ b/docs/epy/class_hierarchy_for_storage.gif
Binary files differ
diff --git a/docs/epy/class_hierarchy_for_storage_2.gif b/docs/epy/class_hierarchy_for_storage_2.gif
index 0331f3a..ab6437c 100644
--- a/docs/epy/class_hierarchy_for_storage_2.gif
+++ b/docs/epy/class_hierarchy_for_storage_2.gif
Binary files differ
diff --git a/docs/epy/class_hierarchy_for_storage_5.gif b/docs/epy/class_hierarchy_for_storage_5.gif
new file mode 100644
index 0000000..a109604
--- /dev/null
+++ b/docs/epy/class_hierarchy_for_storage_5.gif
Binary files differ
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 92c1a36..e6c254b 100644
--- a/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
+++ b/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
@@ -276,7 +276,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 9284b6b..628cb04 100644
--- a/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
+++ b/docs/epy/google.appengine.ext.db.PropertiedClass-class.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 Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 3aded11..40860e0 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 Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 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 c9f9ee4..40a576d 100644
--- a/docs/epy/identifier-index.html
+++ b/docs/epy/identifier-index.html
@@ -87,53 +87,61 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#accept">accept</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.keyring_storage.Storage-class.html#acquire_lock">acquire_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage.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>
+</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="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.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.model.MediaModel-class.html#accept">accept</a><br />
+<span class="index-where">(in <a href="apiclient.model.MediaModel-class.html">MediaModel</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.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.MediaModel-class.html#accept">accept</a><br />
-<span class="index-where">(in <a href="apiclient.model.MediaModel-class.html">MediaModel</a>)</span></td>
+<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.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="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.MediaModel-class.html#alt_param">alt_param</a><br />
<span class="index-where">(in <a href="apiclient.model.MediaModel-class.html">MediaModel</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.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>
@@ -141,7 +149,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="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>
@@ -149,27 +157,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="oauth2client.anyjson-module.html">anyjson</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.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="apiclient-module.html">apiclient</a></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.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"> </td>
-</tr>
</table>
</td></tr>
<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="B">B</a></h2></td>
@@ -361,66 +362,72 @@
<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.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>
+<td width="33%" class="link-index"><a href="oauth2client.util-module.html#FLAGS">FLAGS</a><br />
+<span class="index-where">(in <a href="oauth2client.util-module.html">oauth2client.util</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.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>
+<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._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>
+<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.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>
+<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="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>
+<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="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.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>
+<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="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>
+<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="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>
+<td width="33%" class="link-index"> </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.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"> </td>
</tr>
</table>
</td></tr>
@@ -543,7 +550,8 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#key2param">key2param()</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.keyring_storage-module.html">keyring_storage</a><br />
+<span class="index-where">(in <a href="oauth2client-module.html">oauth2client</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
@@ -557,60 +565,68 @@
<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.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.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>
+<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#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.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.tools.ClientRedirectHandler-class.html#log_message">log_message()</a><br />
-<span class="index-where">(in <a href="oauth2client.tools.ClientRedirectHandler-class.html" onclick="show_private();">ClientRedirectHandler</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#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.django_orm.Storage-class.html#locked_get">locked_get()</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="apiclient.discovery-module.html#logger">logger</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.ClientRedirectHandler-class.html#log_message">log_message()</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="oauth2client.clientsecrets-module.html#loads">loads()</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.file.Storage-class.html#locked_get">locked_get()</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#logger">logger</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.discovery-module.html#logger">logger</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.appengine.StorageByKeyName-class.html#locked_delete">locked_delete()</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.keyring_storage.Storage-class.html#locked_get">locked_get()</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#logger">logger</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.Storage-class.html#locked_delete">locked_delete()</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_get">locked_get()</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#logger">logger</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.Storage-class.html#locked_delete">locked_delete()</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.django_orm.Storage-class.html#locked_delete">locked_delete()</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.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.crypt-module.html#logger">logger</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="oauth2client.django_orm.Storage-class.html#locked_delete">locked_delete()</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.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.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.keyring_storage.Storage-class.html#locked_delete">locked_delete()</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage.Storage-class.html">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"><a href="oauth2client.multistore_file-module.html#logger">logger</a><br />
@@ -621,13 +637,14 @@
<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.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>
+<td width="33%" class="link-index"><a href="oauth2client.util-module.html#logger">logger</a><br />
+<span class="index-where">(in <a href="oauth2client.util-module.html">oauth2client.util</a>)</span></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.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.keyring_storage.Storage-class.html#locked_put">locked_put()</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage.Storage-class.html">Storage</a>)</span></td>
<td width="33%" class="link-index"> </td>
</tr>
</table>
@@ -802,23 +819,29 @@
<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.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="google.appengine.ext.db.PropertiedClass-class.html">PropertiedClass</a></td>
+<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</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.mimeparse-module.html#parse_mime_type">parse_mime_type()</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.MediaDownloadProgress-class.html#progress">progress()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaDownloadProgress-class.html">MediaDownloadProgress</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</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.Storage-class.html#put">put()</a><br />
+<span class="index-where">(in <a href="oauth2client.client.Storage-class.html">Storage</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.util-module.html#positional">positional()</a><br />
+<span class="index-where">(in <a href="oauth2client.util-module.html">oauth2client.util</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html#progress">progress()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a>)</span></td>
+<td width="33%" class="link-index"> </td>
</tr>
<tr>
<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>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html#progress">progress()</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.client.Storage-class.html#put">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="google.appengine.ext.db.PropertiedClass-class.html">PropertiedClass</a></td>
+<td width="33%" class="link-index"> </td>
</tr>
</table>
</td></tr>
@@ -842,38 +865,46 @@
<tr>
<td width="33%" class="link-index"><a href="apiclient.model.RawModel-class.html">RawModel</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.HttpMock-class.html#request">request()</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="apiclient.model.Model-class.html#response">response()</a><br />
+<span class="index-where">(in <a href="apiclient.model.Model-class.html">Model</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#refresh">refresh()</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="apiclient.http.HttpMockSequence-class.html#request">request()</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="apiclient.http.MediaFileUpload-class.html#resumable">resumable()</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.client.Credentials-class.html#refresh">refresh()</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.client.OAuth2Credentials-class.html#refresh">refresh()</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.BaseModel-class.html#request">request()</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.http.MediaInMemoryUpload-class.html#resumable">resumable()</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.client.OAuth2Credentials-class.html#refresh">refresh()</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.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.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.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="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.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.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="oauth2client.keyring_storage.Storage-class.html#release_lock">release_lock()</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage.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="apiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><br />
@@ -887,13 +918,6 @@
<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 />
-<span class="index-where">(in <a href="apiclient.http.HttpMock-class.html">HttpMock</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model.Model-class.html#response">response()</a><br />
-<span class="index-where">(in <a href="apiclient.model.Model-class.html">Model</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="S">S</a></h2></td>
@@ -944,22 +968,23 @@
<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>
+<td width="33%" class="link-index"><a href="oauth2client.keyring_storage.Storage-class.html">Storage</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage-module.html">oauth2client.keyring_storage</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>
+<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="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="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>
+<td width="33%" class="link-index"><a href="django.db.models.fields.subclassing.SubfieldBase-class.html">SubfieldBase</a></td>
</tr>
</table>
</td></tr>
@@ -1013,34 +1038,40 @@
<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.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="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="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="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 />
+<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.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="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>
+<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.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>
+<td width="33%" class="link-index"><a href="oauth2client.util-module.html">util</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.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._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>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<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="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>
+<td width="33%" class="link-index"> </td>
</tr>
</table>
</td></tr>
@@ -1079,369 +1110,379 @@
<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="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>
+<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.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.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>
+<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.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="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>
+<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.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.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>
+<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="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 />
-<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.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>
+<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_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="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="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.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.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>
+<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#_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="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>
+<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="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="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>
+<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.clientsecrets-module.html#_loadfile">_loadfile()</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.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.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>
+<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.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.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>
+<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.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.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>
+<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.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="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>
+<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.MediaDownloadProgress-class.html#__init__">__init__()</a><br />
<span class="index-where">(in <a href="apiclient.http.MediaDownloadProgress-class.html">MediaDownloadProgress</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-module.html#_multistores">_multistores</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.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.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_lock">_multistores_lock</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.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.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.MediaIoBaseDownload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="apiclient.http.MediaIoBaseDownload-class.html">MediaIoBaseDownload</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.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.keyring_storage-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage-module.html">oauth2client.keyring_storage</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.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.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="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.http.MediaIoBaseDownload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in <a href="apiclient.http.MediaIoBaseDownload-class.html">MediaIoBaseDownload</a>)</span></td>
+<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.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="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.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="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.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.client-module.html#_parse_exchange_token_response">_parse_exchange_token_response()</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.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="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="oauth2client.util-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="oauth2client.util-module.html">oauth2client.util</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="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="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">_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._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.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="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="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.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>
</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-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.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.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.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.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.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.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#_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.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.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.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.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.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#__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.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.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.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.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.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.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.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.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="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="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"><a href="apiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request()</a><br />
+<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="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.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#_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="oauth2client.multistore_file._MultiStore._Storage-class.html">_Storage</a><br />
+<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#_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.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#_delete_credential">_delete_credential()</a><br />
+<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="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.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#_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.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.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.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"><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>
+</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.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.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="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.django_orm.CredentialsField-class.html#__init__">__init__()</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.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.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="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.django_orm.FlowField-class.html#__init__">__init__()</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.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.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.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.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="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#_update_credential">_update_credential()</a><br />
+<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.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.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="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.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.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.keyring_storage.Storage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="oauth2client.keyring_storage.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.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.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="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-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.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.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="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._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.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="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.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="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.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="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.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.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.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-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.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.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.locked_file-module.html#_Win32Opener">_Win32Opener</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.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.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.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.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.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.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.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.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>
</table>
@@ -1468,7 +1509,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 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 dfcdfec..06b84c0 100644
--- a/docs/epy/mimetools.Message-class.html
+++ b/docs/epy/mimetools.Message-class.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 Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:27 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 b30f5b5..b3a19c9 100644
--- a/docs/epy/module-tree.html
+++ b/docs/epy/module-tree.html
@@ -78,9 +78,11 @@
<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.keyring_storage-module.html">oauth2client.keyring_storage</a></strong>: <em class="summary">A keyring based Storage.</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>
+ <li> <strong class="uidlink"><a href="oauth2client.util-module.html">oauth2client.util</a></strong>: <em class="summary">Common utility library.</em> </li>
</ul>
</li>
</ul>
@@ -107,7 +109,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:24 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 6bb51e3..5cd8511 100644
--- a/docs/epy/oauth2client-module.html
+++ b/docs/epy/oauth2client-module.html
@@ -82,9 +82,11 @@
<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.keyring_storage-module.html">oauth2client.keyring_storage</a></strong>: <em class="summary">A keyring based Storage.</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>
+ <li> <strong class="uidlink"><a href="oauth2client.util-module.html">oauth2client.util</a></strong>: <em class="summary">Common utility library.</em> </li>
</ul></td></tr>
</table>
@@ -137,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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 cfbb6e3..07fd6f1 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 Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 1d77863..bda7e54 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 d062de8..e2e4743 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 Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 870e9ca..43d576e 100644
--- a/docs/epy/oauth2client.appengine-module.html
+++ b/docs/epy/oauth2client.appengine-module.html
@@ -372,7 +372,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 039d605..0879d8e 100644
--- a/docs/epy/oauth2client.appengine-pysrc.html
+++ b/docs/epy/oauth2client.appengine-pysrc.html
@@ -88,26 +88,28 @@
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-6" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-6', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" 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-7', 'Credentials', 'link-7');">Credentials</a></tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-8" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-8', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class oauth2client.client.Flow=oauth2client.client.Flow-class.html"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-9', 'Flow', 'link-9');">Flow</a></tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-10', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-11" 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-11', 'OAuth2WebServerFlow', 'link-11');">OAuth2WebServerFlow</a></tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-12" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-12', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" 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">from</tt> <tt id="link-12" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-12', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" 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,Class oauth2client.keyring_storage.Storage=oauth2client.keyring_storage.Storage-class.html"><a title="oauth2client.client.Storage
oauth2client.django_orm.Storage
-oauth2client.file.Storage" class="py-name" href="#" onclick="return doclink('link-13', 'Storage', 'link-13');">Storage</a></tt> </tt>
+oauth2client.file.Storage
+oauth2client.keyring_storage.Storage" class="py-name" href="#" onclick="return doclink('link-13', 'Storage', 'link-13');">Storage</a></tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">google</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module oauth2client.appengine=oauth2client.appengine-module.html"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-14', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt class="py-name">api</tt> <tt class="py-keyword">import</tt> <tt class="py-name">memcache</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">google</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-15', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt class="py-name">api</tt> <tt class="py-keyword">import</tt> <tt class="py-name">users</tt> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">google</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-16', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt class="py-name">api</tt> <tt class="py-keyword">import</tt> <tt class="py-name">app_identity</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">google</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-17', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Package apiclient.ext=apiclient.ext-module.html"><a title="apiclient.ext" class="py-name" href="#" onclick="return doclink('link-18', 'ext', 'link-18');">ext</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">db</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">google</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-19', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="apiclient.ext" class="py-name" href="#" onclick="return doclink('link-20', 'ext', 'link-18');">ext</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">webapp</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">google</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-21', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="apiclient.ext" class="py-name" href="#" onclick="return doclink('link-22', 'ext', 'link-18');">ext</a></tt><tt class="py-op">.</tt><tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt class="py-name">util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">login_required</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">google</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-23', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="apiclient.ext" class="py-name" href="#" onclick="return doclink('link-24', 'ext', 'link-18');">ext</a></tt><tt class="py-op">.</tt><tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt class="py-name">util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">run_wsgi_app</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">google</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-21', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="apiclient.ext" class="py-name" href="#" onclick="return doclink('link-22', 'ext', 'link-18');">ext</a></tt><tt class="py-op">.</tt><tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Module oauth2client.util=oauth2client.util-module.html"><a title="oauth2client.util" class="py-name" href="#" onclick="return doclink('link-23', 'util', 'link-23');">util</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">login_required</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">google</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="oauth2client.appengine" class="py-name" href="#" onclick="return doclink('link-24', 'appengine', 'link-14');">appengine</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="apiclient.ext" class="py-name" href="#" onclick="return doclink('link-25', 'ext', 'link-18');">ext</a></tt><tt class="py-op">.</tt><tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="oauth2client.util" class="py-name" href="#" onclick="return doclink('link-26', 'util', 'link-23');">util</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">run_wsgi_app</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>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt id="link-25" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt id="link-27" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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,Variable oauth2client.util.logger=oauth2client.util-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-25', 'logger', 'link-25');">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.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-27', 'logger', 'link-27');">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="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 id="link-26" class="py-name" targets="Variable oauth2client.appengine.OAUTH2CLIENT_NAMESPACE=oauth2client.appengine-module.html#OAUTH2CLIENT_NAMESPACE"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-26', 'OAUTH2CLIENT_NAMESPACE', 'link-26');">OAUTH2CLIENT_NAMESPACE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'oauth2client#ns'</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt id="link-28" class="py-name" targets="Variable oauth2client.appengine.OAUTH2CLIENT_NAMESPACE=oauth2client.appengine-module.html#OAUTH2CLIENT_NAMESPACE"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-28', 'OAUTH2CLIENT_NAMESPACE', 'link-28');">OAUTH2CLIENT_NAMESPACE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'oauth2client#ns'</tt> </tt>
<a name="InvalidClientSecretsError"></a><div id="InvalidClientSecretsError-def"><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>
<a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="InvalidClientSecretsError-toggle" onclick="return toggle('InvalidClientSecretsError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.InvalidClientSecretsError-class.html">InvalidClientSecretsError</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -138,7 +140,7 @@
<a name="L76"></a><tt class="py-lineno"> 76</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="L77"></a><tt class="py-lineno"> 77</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="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-27" 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-27', 'AppAssertionCredentials', 'link-27');">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-28" 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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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__
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-29" 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-29', 'AppAssertionCredentials', 'link-29');">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-30" 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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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.CredentialsField.__init__()=oauth2client.django_orm.CredentialsField-class.html#__init__,Method oauth2client.django_orm.FlowField.__init__()=oauth2client.django_orm.FlowField-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.keyring_storage.Storage.__init__()=oauth2client.keyring_storage.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__
@@ -170,20 +172,23 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.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-28', '__init__', 'link-28');">__init__</a></tt><tt class="py-op">(</tt> </tt>
+oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-30', '__init__', 'link-30');">__init__</a></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">None</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">None</tt><tt class="py-op">,</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
</div><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
<a name="AppAssertionCredentials.from_json"></a><div id="AppAssertionCredentials.from_json-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="AppAssertionCredentials.from_json-toggle" onclick="return toggle('AppAssertionCredentials.from_json');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.AppAssertionCredentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">json</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AppAssertionCredentials.from_json-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="AppAssertionCredentials.from_json-expanded"><a name="L86"></a><tt class="py-lineno"> 86</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-29" 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-29', 'loads', 'link-29');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">json</tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-30" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-30', 'AppAssertionCredentials', 'link-27');">AppAssertionCredentials</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'scope'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><div id="AppAssertionCredentials.from_json-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="AppAssertionCredentials.from_json-expanded"><a name="L86"></a><tt class="py-lineno"> 86</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-31" 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-31', 'loads', 'link-31');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">json</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-32" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-32', 'AppAssertionCredentials', 'link-29');">AppAssertionCredentials</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'scope'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
</div><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="AppAssertionCredentials._refresh"></a><div id="AppAssertionCredentials._refresh-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="AppAssertionCredentials._refresh-toggle" onclick="return toggle('AppAssertionCredentials._refresh');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.AppAssertionCredentials-class.html#_refresh">_refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="AppAssertionCredentials._refresh-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="AppAssertionCredentials._refresh-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-docstring">"""Refreshes the access_token.</tt> </tt>
@@ -201,11 +206,11 @@
<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-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">token</tt><tt class="py-op">,</tt> <tt class="py-name">_</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">app_identity</tt><tt class="py-op">.</tt><tt class="py-name">get_access_token</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="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">app_identity</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Class apiclient.errors.Error=apiclient.errors.Error-class.html,Class oauth2client.client.Error=oauth2client.client.Error-class.html,Class oauth2client.clientsecrets.Error=oauth2client.clientsecrets.Error-class.html,Class oauth2client.multistore_file.Error=oauth2client.multistore_file.Error-class.html"><a title="apiclient.errors.Error
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">app_identity</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Class apiclient.errors.Error=apiclient.errors.Error-class.html,Class oauth2client.client.Error=oauth2client.client.Error-class.html,Class oauth2client.clientsecrets.Error=oauth2client.clientsecrets.Error-class.html,Class oauth2client.multistore_file.Error=oauth2client.multistore_file.Error-class.html"><a title="apiclient.errors.Error
oauth2client.client.Error
oauth2client.clientsecrets.Error
-oauth2client.multistore_file.Error" class="py-name" href="#" onclick="return doclink('link-31', 'Error', 'link-31');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-32" class="py-name"><a title="oauth2client.client.AccessTokenRefreshError" class="py-name" href="#" onclick="return doclink('link-32', 'AccessTokenRefreshError', 'link-3');">AccessTokenRefreshError</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.multistore_file.Error" class="py-name" href="#" onclick="return doclink('link-33', 'Error', 'link-33');">Error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-34" class="py-name"><a title="oauth2client.client.AccessTokenRefreshError" class="py-name" href="#" onclick="return doclink('link-34', 'AccessTokenRefreshError', 'link-3');">AccessTokenRefreshError</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">token</tt> </tt>
</div></div><a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
<a name="FlowProperty"></a><div id="FlowProperty-def"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> </tt>
@@ -216,28 +221,28 @@
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.Flow"""</tt> </tt>
<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-comment"># Tell what the user type is.</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">data_type</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-33', 'Flow', 'link-9');">Flow</a></tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">data_type</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-35', 'Flow', 'link-9');">Flow</a></tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-comment"># For writing to datastore.</tt> </tt>
<a name="FlowProperty.get_value_for_datastore"></a><div id="FlowProperty.get_value_for_datastore-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="FlowProperty.get_value_for_datastore-toggle" onclick="return toggle('FlowProperty.get_value_for_datastore');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.FlowProperty-class.html#get_value_for_datastore">get_value_for_datastore</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">model_instance</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FlowProperty.get_value_for_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowProperty.get_value_for_datastore-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-34" class="py-name" targets="Class oauth2client.appengine.FlowProperty=oauth2client.appengine.FlowProperty-class.html"><a title="oauth2client.appengine.FlowProperty" class="py-name" href="#" onclick="return doclink('link-34', 'FlowProperty', 'link-34');">FlowProperty</a></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">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method oauth2client.appengine.CredentialsProperty.get_value_for_datastore()=oauth2client.appengine.CredentialsProperty-class.html#get_value_for_datastore,Method oauth2client.appengine.FlowProperty.get_value_for_datastore()=oauth2client.appengine.FlowProperty-class.html#get_value_for_datastore"><a title="oauth2client.appengine.CredentialsProperty.get_value_for_datastore
-oauth2client.appengine.FlowProperty.get_value_for_datastore" class="py-name" href="#" onclick="return doclink('link-35', 'get_value_for_datastore', 'link-35');">get_value_for_datastore</a></tt><tt class="py-op">(</tt><tt class="py-name">model_instance</tt><tt class="py-op">)</tt> </tt>
+</div><div id="FlowProperty.get_value_for_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowProperty.get_value_for_datastore-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-36" class="py-name" targets="Class oauth2client.appengine.FlowProperty=oauth2client.appengine.FlowProperty-class.html"><a title="oauth2client.appengine.FlowProperty" class="py-name" href="#" onclick="return doclink('link-36', 'FlowProperty', 'link-36');">FlowProperty</a></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">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method oauth2client.appengine.CredentialsProperty.get_value_for_datastore()=oauth2client.appengine.CredentialsProperty-class.html#get_value_for_datastore,Method oauth2client.appengine.FlowProperty.get_value_for_datastore()=oauth2client.appengine.FlowProperty-class.html#get_value_for_datastore"><a title="oauth2client.appengine.CredentialsProperty.get_value_for_datastore
+oauth2client.appengine.FlowProperty.get_value_for_datastore" class="py-name" href="#" onclick="return doclink('link-37', 'get_value_for_datastore', 'link-37');">get_value_for_datastore</a></tt><tt class="py-op">(</tt><tt class="py-name">model_instance</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">return</tt> <tt class="py-name">db</tt><tt class="py-op">.</tt><tt class="py-name">Blob</tt><tt class="py-op">(</tt><tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">flow</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-comment"># For reading from datastore.</tt> </tt>
<a name="FlowProperty.make_value_from_datastore"></a><div id="FlowProperty.make_value_from_datastore-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="FlowProperty.make_value_from_datastore-toggle" onclick="return toggle('FlowProperty.make_value_from_datastore');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.FlowProperty-class.html#make_value_from_datastore">make_value_from_datastore</a><tt class="py-op">(</tt><tt class="py-param">self</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="FlowProperty.make_value_from_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowProperty.make_value_from_datastore-expanded"><a name="L127"></a><tt class="py-lineno">127</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="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-36', 'loads', 'link-29');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">value</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">return</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-38', 'loads', 'link-31');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
</div><a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> </tt>
<a name="FlowProperty.validate"></a><div id="FlowProperty.validate-def"><a name="L131"></a><tt class="py-lineno">131</tt> <a class="py-toggle" href="#" id="FlowProperty.validate-toggle" onclick="return toggle('FlowProperty.validate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.FlowProperty-class.html#validate">validate</a><tt class="py-op">(</tt><tt class="py-param">self</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="FlowProperty.validate-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowProperty.validate-expanded"><a name="L132"></a><tt class="py-lineno">132</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-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt id="link-37" class="py-name"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-37', 'Flow', 'link-9');">Flow</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlowProperty.validate-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowProperty.validate-expanded"><a name="L132"></a><tt class="py-lineno">132</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-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt id="link-39" class="py-name"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-39', 'Flow', 'link-9');">Flow</a></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 class="py-keyword">raise</tt> <tt class="py-name">db</tt><tt class="py-op">.</tt><tt class="py-name">BadValueError</tt><tt class="py-op">(</tt><tt class="py-string">'Property %s must be convertible '</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-string">'to a FlowThreeLegged instance (%s)'</tt> <tt class="py-op">%</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><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-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="oauth2client.appengine.FlowProperty" class="py-name" href="#" onclick="return doclink('link-38', 'FlowProperty', 'link-34');">FlowProperty</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-39" class="py-name" targets="Method oauth2client.appengine.CredentialsProperty.validate()=oauth2client.appengine.CredentialsProperty-class.html#validate,Method oauth2client.appengine.FlowProperty.validate()=oauth2client.appengine.FlowProperty-class.html#validate"><a title="oauth2client.appengine.CredentialsProperty.validate
-oauth2client.appengine.FlowProperty.validate" class="py-name" href="#" onclick="return doclink('link-39', 'validate', 'link-39');">validate</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="oauth2client.appengine.FlowProperty" class="py-name" href="#" onclick="return doclink('link-40', 'FlowProperty', 'link-36');">FlowProperty</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-41" class="py-name" targets="Method oauth2client.appengine.CredentialsProperty.validate()=oauth2client.appengine.CredentialsProperty-class.html#validate,Method oauth2client.appengine.FlowProperty.validate()=oauth2client.appengine.FlowProperty-class.html#validate"><a title="oauth2client.appengine.CredentialsProperty.validate
+oauth2client.appengine.FlowProperty.validate" class="py-name" href="#" onclick="return doclink('link-41', 'validate', 'link-41');">validate</a></tt><tt class="py-op">(</tt><tt class="py-name">value</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="FlowProperty.empty"></a><div id="FlowProperty.empty-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="FlowProperty.empty-toggle" onclick="return toggle('FlowProperty.empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.FlowProperty-class.html#empty">empty</a><tt class="py-op">(</tt><tt class="py-param">self</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="FlowProperty.empty-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowProperty.empty-expanded"><a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-name">value</tt> </tt>
@@ -251,60 +256,63 @@
<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-comment"># Tell what the user type is.</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">data_type</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-40', 'Credentials', 'link-7');">Credentials</a></tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">data_type</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-42', 'Credentials', 'link-7');">Credentials</a></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-comment"># For writing to datastore.</tt> </tt>
<a name="CredentialsProperty.get_value_for_datastore"></a><div id="CredentialsProperty.get_value_for_datastore-def"><a name="L153"></a><tt class="py-lineno">153</tt> <a class="py-toggle" href="#" id="CredentialsProperty.get_value_for_datastore-toggle" onclick="return toggle('CredentialsProperty.get_value_for_datastore');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.CredentialsProperty-class.html#get_value_for_datastore">get_value_for_datastore</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">model_instance</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CredentialsProperty.get_value_for_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsProperty.get_value_for_datastore-expanded"><a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt id="link-41" class="py-name"><a title="apiclient.discovery.logger
+</div><div id="CredentialsProperty.get_value_for_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsProperty.get_value_for_datastore-expanded"><a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-41', 'logger', 'link-25');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"get: Got type "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">model_instance</tt><tt class="py-op">)</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-name">cred</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-42" class="py-name" targets="Class oauth2client.appengine.CredentialsProperty=oauth2client.appengine.CredentialsProperty-class.html"><a title="oauth2client.appengine.CredentialsProperty" class="py-name" href="#" onclick="return doclink('link-42', 'CredentialsProperty', 'link-42');">CredentialsProperty</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">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="oauth2client.appengine.CredentialsProperty.get_value_for_datastore
-oauth2client.appengine.FlowProperty.get_value_for_datastore" class="py-name" href="#" onclick="return doclink('link-43', 'get_value_for_datastore', 'link-35');">get_value_for_datastore</a></tt><tt class="py-op">(</tt><tt class="py-name">model_instance</tt><tt class="py-op">)</tt> </tt>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-43', 'logger', 'link-27');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"get: Got type "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">model_instance</tt><tt class="py-op">)</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-name">cred</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name" targets="Class oauth2client.appengine.CredentialsProperty=oauth2client.appengine.CredentialsProperty-class.html"><a title="oauth2client.appengine.CredentialsProperty" class="py-name" href="#" onclick="return doclink('link-44', 'CredentialsProperty', 'link-44');">CredentialsProperty</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">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="oauth2client.appengine.CredentialsProperty.get_value_for_datastore
+oauth2client.appengine.FlowProperty.get_value_for_datastore" class="py-name" href="#" onclick="return doclink('link-45', 'get_value_for_datastore', 'link-37');">get_value_for_datastore</a></tt><tt class="py-op">(</tt><tt class="py-name">model_instance</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-name">cred</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">cred</tt> <tt class="py-op">=</tt> <tt class="py-string">''</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-name">cred</tt> <tt class="py-op">=</tt> <tt class="py-name">cred</tt><tt class="py-op">.</tt><tt id="link-44" 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
+<a name="L160"></a><tt class="py-lineno">160</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-46" 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-44', 'to_json', 'link-44');">to_json</a></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-46', 'to_json', 'link-46');">to_json</a></tt><tt class="py-op">(</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">return</tt> <tt class="py-name">db</tt><tt class="py-op">.</tt><tt class="py-name">Blob</tt><tt class="py-op">(</tt><tt class="py-name">cred</tt><tt class="py-op">)</tt> </tt>
</div><a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-comment"># For reading from datastore.</tt> </tt>
<a name="CredentialsProperty.make_value_from_datastore"></a><div id="CredentialsProperty.make_value_from_datastore-def"><a name="L164"></a><tt class="py-lineno">164</tt> <a class="py-toggle" href="#" id="CredentialsProperty.make_value_from_datastore-toggle" onclick="return toggle('CredentialsProperty.make_value_from_datastore');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.CredentialsProperty-class.html#make_value_from_datastore">make_value_from_datastore</a><tt class="py-op">(</tt><tt class="py-param">self</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="CredentialsProperty.make_value_from_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsProperty.make_value_from_datastore-expanded"><a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt id="link-45" class="py-name"><a title="apiclient.discovery.logger
+</div><div id="CredentialsProperty.make_value_from_datastore-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsProperty.make_value_from_datastore-expanded"><a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt id="link-47" class="py-name"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-45', 'logger', 'link-25');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"make: Got type "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</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-op">)</tt> </tt>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-47', 'logger', 'link-27');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"make: Got type "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</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-op">)</tt> </tt>
<a name="L166"></a><tt class="py-lineno">166</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="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L168"></a><tt class="py-lineno">168</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">value</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="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt id="link-46" 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-46', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-47', 'Credentials', 'link-7');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-48" 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-48', 'new_from_json', 'link-48');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt id="link-48" 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-48', 'credentials', 'link-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-49', 'Credentials', 'link-7');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-50" 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-50', 'new_from_json', 'link-50');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">value</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">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt id="link-49" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-49', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-50" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-50', 'credentials', 'link-46');">credentials</a></tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</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-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-52" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-52', 'credentials', 'link-48');">credentials</a></tt> </tt>
</div><a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> </tt>
<a name="CredentialsProperty.validate"></a><div id="CredentialsProperty.validate-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="CredentialsProperty.validate-toggle" onclick="return toggle('CredentialsProperty.validate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.CredentialsProperty-class.html#validate">validate</a><tt class="py-op">(</tt><tt class="py-param">self</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="CredentialsProperty.validate-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsProperty.validate-expanded"><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="oauth2client.appengine.CredentialsProperty" class="py-name" href="#" onclick="return doclink('link-51', 'CredentialsProperty', 'link-42');">CredentialsProperty</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-52" class="py-name"><a title="oauth2client.appengine.CredentialsProperty.validate
-oauth2client.appengine.FlowProperty.validate" class="py-name" href="#" onclick="return doclink('link-52', 'validate', 'link-39');">validate</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt id="link-53" class="py-name"><a title="apiclient.discovery.logger
+</div><div id="CredentialsProperty.validate-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsProperty.validate-expanded"><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="oauth2client.appengine.CredentialsProperty" class="py-name" href="#" onclick="return doclink('link-53', 'CredentialsProperty', 'link-44');">CredentialsProperty</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-54" class="py-name"><a title="oauth2client.appengine.CredentialsProperty.validate
+oauth2client.appengine.FlowProperty.validate" class="py-name" href="#" onclick="return doclink('link-54', 'validate', 'link-41');">validate</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt id="link-55" class="py-name"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-53', 'logger', 'link-25');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"validate: Got type "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</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-op">)</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-name">value</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-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt id="link-54" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-54', 'Credentials', 'link-7');">Credentials</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-55', 'logger', 'link-27');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">"validate: Got type "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</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-op">)</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-name">value</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-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</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-7');">Credentials</a></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-keyword">raise</tt> <tt class="py-name">db</tt><tt class="py-op">.</tt><tt class="py-name">BadValueError</tt><tt class="py-op">(</tt><tt class="py-string">'Property %s must be convertible '</tt> </tt>
<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-string">'to a Credentials instance (%s)'</tt> <tt class="py-op">%</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">self</tt><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-op">)</tt> </tt>
@@ -332,7 +340,7 @@
<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> property_name: string, name of the property that is a CredentialsProperty</tt> </tt>
<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> cache: memcache, a write-through cache to put in front of the datastore</tt> </tt>
<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</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-55" class="py-name" targets="Module apiclient.model=apiclient.model-module.html"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-55', 'model', 'link-55');">model</a></tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</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-57" class="py-name" targets="Module apiclient.model=apiclient.model-module.html"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-57', 'model', 'link-57');">model</a></tt> </tt>
<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <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">key_name</tt> </tt>
<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_property_name</tt> <tt class="py-op">=</tt> <tt class="py-name">property_name</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">_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">cache</tt> </tt>
@@ -344,28 +352,28 @@
<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.Credentials</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_cache</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">json</tt> <tt class="py-op">=</tt> <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 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="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">json</tt> <tt class="py-op">=</tt> <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-58" 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-56', 'get', 'link-56');">get</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>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-58', 'get', 'link-58');">get</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>
<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">json</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">return</tt> <tt id="link-57" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-57', 'Credentials', 'link-7');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="apiclient.http.MediaUpload.new_from_json
-oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-58', 'new_from_json', 'link-48');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">json</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">return</tt> <tt id="link-59" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-59', 'Credentials', 'link-7');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="apiclient.http.MediaUpload.new_from_json
+oauth2client.client.Credentials.new_from_json" class="py-name" href="#" onclick="return doclink('link-60', 'new_from_json', 'link-50');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">json</tt><tt class="py-op">)</tt> </tt>
<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> </tt>
<a name="L223"></a><tt class="py-lineno">223</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="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">entity</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 class="py-name">get_by_key_name</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>
<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">entity</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="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">entity</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_property_name</tt><tt class="py-op">)</tt> </tt>
<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">credential</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">credential</tt><tt class="py-op">,</tt> <tt class="py-string">'set_store'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-59" 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-59', 'set_store', 'link-59');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-61" 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-61', 'set_store', 'link-61');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L229"></a><tt class="py-lineno">229</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">_cache</tt><tt class="py-op">:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</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" 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-60', 'set', 'link-60');">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-61" class="py-name"><a title="apiclient.http.HttpRequest.to_json
+<a name="L230"></a><tt class="py-lineno">230</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-62" 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-62', 'set', 'link-62');">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-63" 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-61', 'to_json', 'link-44');">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-63', 'to_json', 'link-46');">to_json</a></tt><tt class="py-op">(</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>
<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">credential</tt> </tt>
</div><a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> </tt>
@@ -376,28 +384,28 @@
<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">entity</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 class="py-name">get_or_insert</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>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">entity</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_property_name</tt><tt class="py-op">,</tt> <tt id="link-62" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-62', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">entity</tt><tt class="py-op">.</tt><tt id="link-63" 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-63', 'put', 'link-63');">put</a></tt><tt class="py-op">(</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">setattr</tt><tt class="py-op">(</tt><tt class="py-name">entity</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_property_name</tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-64', 'credentials', 'link-48');">credentials</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">entity</tt><tt class="py-op">.</tt><tt id="link-65" 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-65', 'put', 'link-65');">put</a></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">_cache</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_cache</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-64', 'set', 'link-60');">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-65" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-65', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="apiclient.http.HttpRequest.to_json
+<a name="L244"></a><tt class="py-lineno">244</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-66" class="py-name"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-66', 'set', 'link-62');">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-67" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-67', 'credentials', 'link-48');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-68" 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-66', 'to_json', 'link-44');">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-68', 'to_json', 'link-46');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> </tt>
<a name="StorageByKeyName.locked_delete"></a><div id="StorageByKeyName.locked_delete-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="StorageByKeyName.locked_delete-toggle" onclick="return toggle('StorageByKeyName.locked_delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.StorageByKeyName-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="StorageByKeyName.locked_delete-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="StorageByKeyName.locked_delete-expanded"><a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete Credential from datastore."""</tt> </tt>
<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> </tt>
<a name="L249"></a><tt class="py-lineno">249</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">_cache</tt><tt class="py-op">:</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">_cache</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method oauth2client.client.MemoryCache.delete()=oauth2client.client.MemoryCache-class.html#delete,Method oauth2client.client.Storage.delete()=oauth2client.client.Storage-class.html#delete"><a title="oauth2client.client.MemoryCache.delete
-oauth2client.client.Storage.delete" class="py-name" href="#" onclick="return doclink('link-67', 'delete', 'link-67');">delete</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>
+<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">_cache</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method oauth2client.client.MemoryCache.delete()=oauth2client.client.MemoryCache-class.html#delete,Method oauth2client.client.Storage.delete()=oauth2client.client.Storage-class.html#delete"><a title="oauth2client.client.MemoryCache.delete
+oauth2client.client.Storage.delete" class="py-name" href="#" onclick="return doclink('link-69', 'delete', 'link-69');">delete</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>
<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 class="py-name">entity</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 class="py-name">get_by_key_name</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>
<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">entity</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="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">entity</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="oauth2client.client.MemoryCache.delete
-oauth2client.client.Storage.delete" class="py-name" href="#" onclick="return doclink('link-68', 'delete', 'link-67');">delete</a></tt><tt class="py-op">(</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">entity</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="oauth2client.client.MemoryCache.delete
+oauth2client.client.Storage.delete" class="py-name" href="#" onclick="return doclink('link-70', 'delete', 'link-69');">delete</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>
<a name="CredentialsModel"></a><div id="CredentialsModel-def"><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> <a class="py-toggle" href="#" id="CredentialsModel-toggle" onclick="return toggle('CredentialsModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a><tt class="py-op">(</tt><tt class="py-base-class">db</tt><tt class="py-op">.</tt><tt class="py-base-class">Model</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -405,7 +413,7 @@
<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> Storage of the model is keyed by the user.user_id().</tt> </tt>
<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt id="link-69" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-69', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="oauth2client.appengine.CredentialsProperty" class="py-name" href="#" onclick="return doclink('link-70', 'CredentialsProperty', 'link-42');">CredentialsProperty</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-71', 'credentials', 'link-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="oauth2client.appengine.CredentialsProperty" class="py-name" href="#" onclick="return doclink('link-72', 'CredentialsProperty', 'link-44');">CredentialsProperty</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> </tt>
<a name="OAuth2Decorator"></a><div id="OAuth2Decorator-def"><a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> </tt>
<a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="OAuth2Decorator-toggle" onclick="return toggle('OAuth2Decorator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -456,20 +464,20 @@
<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"><tt class="py-docstring"> **kwargs: dict, Keyword arguments are be passed along as kwargs to the</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"><tt class="py-docstring"> OAuth2WebServerFlow constructor.</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-71', 'OAuth2WebServerFlow', 'link-11');">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="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-73', 'OAuth2WebServerFlow', 'link-11');">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="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">auth_uri</tt><tt class="py-op">,</tt> <tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</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 id="link-72" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-72', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</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 id="link-74" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-74', 'credentials', 'link-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">_request_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">_message</tt> <tt class="py-op">=</tt> <tt class="py-name">message</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">_in_error</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
</div><a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> </tt>
<a name="OAuth2Decorator._display_error_message"></a><div id="OAuth2Decorator._display_error_message-def"><a name="L320"></a><tt class="py-lineno">320</tt> <a class="py-toggle" href="#" id="OAuth2Decorator._display_error_message-toggle" onclick="return toggle('OAuth2Decorator._display_error_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message">_display_error_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request_handler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Decorator._display_error_message-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Decorator._display_error_message-expanded"><a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-73" 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-73', 'response', 'link-73');">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 class="py-string">'<html><body>'</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">request_handler</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-74', 'response', 'link-73');">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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</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">request_handler</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-75', 'response', 'link-73');">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 class="py-string">'</body></html>'</tt><tt class="py-op">)</tt> </tt>
+</div><div id="OAuth2Decorator._display_error_message-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Decorator._display_error_message-expanded"><a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-75" 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-75', 'response', 'link-75');">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 class="py-string">'<html><body>'</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">request_handler</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-76', 'response', 'link-75');">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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</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">request_handler</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-77', 'response', 'link-75');">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 class="py-string">'</body></html>'</tt><tt class="py-op">)</tt> </tt>
</div><a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> </tt>
<a name="OAuth2Decorator.oauth_required"></a><div id="OAuth2Decorator.oauth_required-def"><a name="L325"></a><tt class="py-lineno">325</tt> <a class="py-toggle" href="#" id="OAuth2Decorator.oauth_required-toggle" onclick="return toggle('OAuth2Decorator.oauth_required');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Decorator-class.html#oauth_required">oauth_required</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="OAuth2Decorator.oauth_required-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Decorator.oauth_required-expanded"><a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-docstring">"""Decorator that starts the OAuth 2.0 dance.</tt> </tt>
@@ -484,36 +492,36 @@
<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> </tt>
<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">check_oauth</tt><tt class="py-op">(</tt><tt class="py-param">request_handler</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</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="L337"></a><tt class="py-lineno">337</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">_in_error</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">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method oauth2client.appengine.OAuth2Decorator._display_error_message()=oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message"><a title="oauth2client.appengine.OAuth2Decorator._display_error_message" class="py-name" href="#" onclick="return doclink('link-76', '_display_error_message', 'link-76');">_display_error_message</a></tt><tt class="py-op">(</tt><tt class="py-name">request_handler</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">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method oauth2client.appengine.OAuth2Decorator._display_error_message()=oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message"><a title="oauth2client.appengine.OAuth2Decorator._display_error_message" class="py-name" href="#" onclick="return doclink('link-78', '_display_error_message', 'link-78');">_display_error_message</a></tt><tt class="py-op">(</tt><tt class="py-name">request_handler</tt><tt class="py-op">)</tt> </tt>
<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"> </tt>
<a name="L341"></a><tt class="py-lineno">341</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="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"> <tt class="py-comment"># Don't use @login_decorator as this could be used in a POST request.</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">user</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">request_handler</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">users</tt><tt class="py-op">.</tt><tt class="py-name">create_login_url</tt><tt class="py-op">(</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-77" 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
+<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-79" 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-77', 'request', 'link-77');">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>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-79', 'request', 'link-79');">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="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-comment"># Store the request URI in 'state' so we can use it later</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">.</tt><tt class="py-name">params</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-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">.</tt><tt class="py-name">params</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-name">request_handler</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-78', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">url</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-80', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">url</tt> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">request_handler</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 id="link-79" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-79', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name" targets="Class oauth2client.appengine.StorageByKeyName=oauth2client.appengine.StorageByKeyName-class.html"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-80', 'StorageByKeyName', 'link-80');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt id="link-81" class="py-name" targets="Class oauth2client.appengine.CredentialsModel=oauth2client.appengine.CredentialsModel-class.html"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-81', 'CredentialsModel', 'link-81');">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-82" class="py-name"><a title="apiclient.schema.Schemas.get
+<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 id="link-81" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-81', 'credentials', 'link-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name" targets="Class oauth2client.appengine.StorageByKeyName=oauth2client.appengine.StorageByKeyName-class.html"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-82', 'StorageByKeyName', 'link-82');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt id="link-83" class="py-name" targets="Class oauth2client.appengine.CredentialsModel=oauth2client.appengine.CredentialsModel-class.html"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-83', 'CredentialsModel', 'link-83');">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-84" 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-82', 'get', 'link-56');">get</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-84', 'get', 'link-58');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> </tt>
-<a name="L353"></a><tt class="py-lineno">353</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 id="link-83" class="py-name" targets="Method oauth2client.appengine.OAuth2Decorator.has_credentials()=oauth2client.appengine.OAuth2Decorator-class.html#has_credentials"><a title="oauth2client.appengine.OAuth2Decorator.has_credentials" class="py-name" href="#" onclick="return doclink('link-83', 'has_credentials', 'link-83');">has_credentials</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" 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-84', 'authorize_url', 'link-84');">authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</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 id="link-85" class="py-name" targets="Method oauth2client.appengine.OAuth2Decorator.has_credentials()=oauth2client.appengine.OAuth2Decorator-class.html#has_credentials"><a title="oauth2client.appengine.OAuth2Decorator.has_credentials" class="py-name" href="#" onclick="return doclink('link-85', 'has_credentials', 'link-85');">has_credentials</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" 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-86', 'authorize_url', 'link-86');">authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"> <tt class="py-keyword">try</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">method</tt><tt class="py-op">(</tt><tt class="py-name">request_handler</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-85" class="py-name"><a title="oauth2client.client.AccessTokenRefreshError" class="py-name" href="#" onclick="return doclink('link-85', 'AccessTokenRefreshError', 'link-3');">AccessTokenRefreshError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-86', 'authorize_url', 'link-84');">authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt id="link-87" class="py-name"><a title="oauth2client.client.AccessTokenRefreshError" class="py-name" href="#" onclick="return doclink('link-87', 'AccessTokenRefreshError', 'link-3');">AccessTokenRefreshError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt class="py-name">redirect</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="oauth2client.appengine.OAuth2Decorator.authorize_url" class="py-name" href="#" onclick="return doclink('link-88', 'authorize_url', 'link-86');">authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
</div><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-keyword">return</tt> <tt class="py-name">check_oauth</tt> </tt>
</div><a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> </tt>
@@ -533,30 +541,30 @@
<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> </tt>
<a name="L376"></a><tt class="py-lineno">376</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">setup_oauth</tt><tt class="py-op">(</tt><tt class="py-param">request_handler</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</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="L377"></a><tt class="py-lineno">377</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">_in_error</tt><tt class="py-op">:</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator._display_error_message" class="py-name" href="#" onclick="return doclink('link-87', '_display_error_message', 'link-76');">_display_error_message</a></tt><tt class="py-op">(</tt><tt class="py-name">request_handler</tt><tt class="py-op">)</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="oauth2client.appengine.OAuth2Decorator._display_error_message" class="py-name" href="#" onclick="return doclink('link-89', '_display_error_message', 'link-78');">_display_error_message</a></tt><tt class="py-op">(</tt><tt class="py-name">request_handler</tt><tt class="py-op">)</tt> </tt>
<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> </tt>
<a name="L381"></a><tt class="py-lineno">381</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="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"> <tt class="py-comment"># Don't use @login_decorator as this could be used in a POST request.</tt> </tt>
<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">user</tt><tt class="py-op">:</tt> </tt>
<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">users</tt><tt class="py-op">.</tt><tt class="py-name">create_login_url</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">request_handler</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-90" 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-88', 'request', 'link-77');">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>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-90', 'request', 'link-79');">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="L386"></a><tt class="py-lineno">386</tt> <tt class="py-line"> <tt class="py-keyword">return</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>
-<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">.</tt><tt class="py-name">params</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-name">request_handler</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">.</tt><tt class="py-name">params</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-name">request_handler</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-89', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">url</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-91', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">url</tt> </tt>
<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">request_handler</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-90', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-91', 'StorageByKeyName', 'link-80');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt id="link-92" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-92', 'CredentialsModel', 'link-81');">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-93" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"> <tt class="py-name">self</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-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-93" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-93', 'StorageByKeyName', 'link-82');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt id="link-94" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-94', 'CredentialsModel', 'link-83');">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-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-93', 'get', 'link-56');">get</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-95', 'get', 'link-58');">get</a></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">method</tt><tt class="py-op">(</tt><tt class="py-name">request_handler</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
</div><a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">setup_oauth</tt> </tt>
</div><a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> </tt>
@@ -566,7 +574,7 @@
<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> Must only be called from with a webapp.RequestHandler subclassed method</tt> </tt>
<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> that had been decorated with either @oauth_required or @oauth_aware.</tt> </tt>
<a name="L401"></a><tt class="py-lineno">401</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</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-94" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-94', 'credentials', 'link-46');">credentials</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-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-95', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</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-96" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-96', 'credentials', 'link-48');">credentials</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-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-97', 'credentials', 'link-48');">credentials</a></tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> </tt>
</div><a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"> </tt>
<a name="OAuth2Decorator.authorize_url"></a><div id="OAuth2Decorator.authorize_url-def"><a name="L404"></a><tt class="py-lineno">404</tt> <a class="py-toggle" href="#" id="OAuth2Decorator.authorize_url-toggle" onclick="return toggle('OAuth2Decorator.authorize_url');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Decorator-class.html#authorize_url">authorize_url</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="OAuth2Decorator.authorize_url-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Decorator.authorize_url-expanded"><a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-docstring">"""Returns the URL to start the OAuth dance.</tt> </tt>
@@ -574,14 +582,14 @@
<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"><tt class="py-docstring"> Must only be called from with a webapp.RequestHandler subclassed method</tt> </tt>
<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"><tt class="py-docstring"> that had been decorated with either @oauth_required or @oauth_aware.</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-name">callback</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request_handler</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L410"></a><tt class="py-lineno">410</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">_request_handler</tt><tt class="py-op">.</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-96', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">relative_url</tt><tt class="py-op">(</tt><tt class="py-string">'/oauth2callback'</tt><tt class="py-op">)</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-97" 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-97', 'step1_get_authorize_url', 'link-97');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">callback</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-98', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">relative_url</tt><tt class="py-op">(</tt><tt class="py-string">'/oauth2callback'</tt><tt class="py-op">)</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-99" 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-99', 'step1_get_authorize_url', 'link-99');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">callback</tt><tt class="py-op">)</tt> </tt>
<a name="L412"></a><tt class="py-lineno">412</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="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-98', 'set', 'link-60');">set</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-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-99" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-99', 'OAUTH2CLIENT_NAMESPACE', 'link-26');">OAUTH2CLIENT_NAMESPACE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"> <tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-100', 'set', 'link-62');">set</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-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">flow</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L414"></a><tt class="py-lineno">414</tt> <tt class="py-line"> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-101" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-101', 'OAUTH2CLIENT_NAMESPACE', 'link-28');">OAUTH2CLIENT_NAMESPACE</a></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">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
</div><a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> </tt>
<a name="OAuth2Decorator.http"></a><div id="OAuth2Decorator.http-def"><a name="L417"></a><tt class="py-lineno">417</tt> <a class="py-toggle" href="#" id="OAuth2Decorator.http-toggle" onclick="return toggle('OAuth2Decorator.http');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Decorator-class.html#http">http</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -591,8 +599,8 @@
<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"><tt class="py-docstring"> from within an @oauth_aware decorated method where has_credentials()</tt> </tt>
<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"><tt class="py-docstring"> returns True.</tt> </tt>
<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</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-100" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-100', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method oauth2client.client.Credentials.authorize()=oauth2client.client.Credentials-class.html#authorize,Method oauth2client.client.OAuth2Credentials.authorize()=oauth2client.client.OAuth2Credentials-class.html#authorize"><a title="oauth2client.client.Credentials.authorize
-oauth2client.client.OAuth2Credentials.authorize" class="py-name" href="#" onclick="return doclink('link-101', 'authorize', 'link-101');">authorize</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 class="py-op">)</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</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-102" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-102', 'credentials', 'link-48');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Method oauth2client.client.Credentials.authorize()=oauth2client.client.Credentials-class.html#authorize,Method oauth2client.client.OAuth2Credentials.authorize()=oauth2client.client.OAuth2Credentials-class.html#authorize"><a title="oauth2client.client.Credentials.authorize
+oauth2client.client.OAuth2Credentials.authorize" class="py-name" href="#" onclick="return doclink('link-103', 'authorize', 'link-103');">authorize</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 class="py-op">)</tt> </tt>
</div></div><a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> </tt>
<a name="OAuth2DecoratorFromClientSecrets"></a><div id="OAuth2DecoratorFromClientSecrets-def"><a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> </tt>
<a name="L427"></a><tt class="py-lineno">427</tt> <a class="py-toggle" href="#" id="OAuth2DecoratorFromClientSecrets-toggle" onclick="return toggle('OAuth2DecoratorFromClientSecrets');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html">OAuth2DecoratorFromClientSecrets</a><tt class="py-op">(</tt><tt class="py-base-class">OAuth2Decorator</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -632,13 +640,13 @@
<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"><tt class="py-docstring"> methods. See clientsecrets.loadfile() for details.</tt> </tt>
<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">try</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_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</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="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-103', 'loadfile', 'link-103');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-104" 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-104', 'filename', 'link-104');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</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-105" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-105', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-106" 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-106', 'TYPE_WEB', 'link-106');">TYPE_WEB</a></tt><tt class="py-op">,</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" 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-108', 'TYPE_INSTALLED', 'link-108');">TYPE_INSTALLED</a></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-keyword">raise</tt> <tt id="link-109" 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-109', 'InvalidClientSecretsError', 'link-109');">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="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-110" 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-110', 'OAuth2DecoratorFromClientSecrets', 'link-110');">OAuth2DecoratorFromClientSecrets</a></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">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="apiclient.errors.BatchError.__init__
+<a name="L464"></a><tt class="py-lineno">464</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-104" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-104', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-105" 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-105', 'loadfile', 'link-105');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-106" 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-106', 'filename', 'link-106');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</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-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" 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-108', 'TYPE_WEB', 'link-108');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-109" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-109', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-110" 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-110', 'TYPE_INSTALLED', 'link-110');">TYPE_INSTALLED</a></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-keyword">raise</tt> <tt id="link-111" 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-111', 'InvalidClientSecretsError', 'link-111');">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="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-112" 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-112', 'OAuth2DecoratorFromClientSecrets', 'link-112');">OAuth2DecoratorFromClientSecrets</a></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">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="apiclient.errors.BatchError.__init__
apiclient.errors.HttpError.__init__
apiclient.errors.UnexpectedBodyError.__init__
apiclient.errors.UnexpectedMethodError.__init__
@@ -670,20 +678,23 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.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-111', '__init__', 'link-28');">__init__</a></tt><tt class="py-op">(</tt> </tt>
+oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-113', '__init__', 'link-30');">__init__</a></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">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="L470"></a><tt class="py-lineno">470</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="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> <tt class="py-name">scope</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">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="L473"></a><tt class="py-lineno">473</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="L474"></a><tt class="py-lineno">474</tt> <tt class="py-line"> <tt class="py-name">message</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">except</tt> <tt id="link-112" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-112', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
-oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-113', 'InvalidClientSecretsError', 'link-109');">InvalidClientSecretsError</a></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">except</tt> <tt id="link-114" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-114', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
+oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-115', 'InvalidClientSecretsError', 'link-111');">InvalidClientSecretsError</a></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">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="L477"></a><tt class="py-lineno">477</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="L478"></a><tt class="py-lineno">478</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>
@@ -709,8 +720,8 @@
<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"><tt class="py-docstring"> Returns: An OAuth2Decorator</tt> </tt>
<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-114" class="py-name"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-114', 'OAuth2DecoratorFromClientSecrets', 'link-110');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-115', 'filename', 'link-104');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</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">return</tt> <tt id="link-116" class="py-name"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-116', 'OAuth2DecoratorFromClientSecrets', 'link-112');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">(</tt><tt id="link-117" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-117', 'filename', 'link-106');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</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">message</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
</div><a name="L503"></a><tt class="py-lineno">503</tt> <tt class="py-line"> </tt>
<a name="OAuth2Handler"></a><div id="OAuth2Handler-def"><a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"> </tt>
@@ -719,59 +730,59 @@
<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-decorator">@</tt><tt class="py-decorator">login_required</tt> </tt>
<a name="OAuth2Handler.get"></a><div id="OAuth2Handler.get-def"><a name="L509"></a><tt class="py-lineno">509</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="L510"></a><tt class="py-lineno">510</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-116" 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="L510"></a><tt class="py-lineno">510</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-118" 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-77');">request</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-118', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt id="link-119" 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-117', 'get', 'link-56');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-119', 'get', 'link-58');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
<a name="L511"></a><tt class="py-lineno">511</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="L512"></a><tt class="py-lineno">512</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-118" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L512"></a><tt class="py-lineno">512</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-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-118', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-120', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt id="link-121" 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-119', 'get', 'link-56');">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="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="apiclient.model.BaseModel.response
-apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-120', 'response', 'link-73');">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-121', 'get', 'link-58');">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="L513"></a><tt class="py-lineno">513</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="apiclient.model.BaseModel.response
+apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-122', 'response', 'link-75');">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="L514"></a><tt class="py-lineno">514</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="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-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="L517"></a><tt class="py-lineno">517</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-121" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-121', 'loads', 'link-29');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L517"></a><tt class="py-lineno">517</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-123" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-123', 'loads', 'link-31');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-124" 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-122', 'get', 'link-56');">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="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-123" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-123', 'OAUTH2CLIENT_NAMESPACE', 'link-26');">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-124', 'get', 'link-58');">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="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-125" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-125', 'OAUTH2CLIENT_NAMESPACE', 'link-28');">OAUTH2CLIENT_NAMESPACE</a></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-comment"># This code should be ammended with application specific error</tt> </tt>
<a name="L520"></a><tt class="py-lineno">520</tt> <tt class="py-line"> <tt class="py-comment"># handling. The following cases should be considered:</tt> </tt>
<a name="L521"></a><tt class="py-lineno">521</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="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"> <tt class="py-comment"># 2. What if the step2_exchange fails?</tt> </tt>
<a name="L523"></a><tt class="py-lineno">523</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="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt id="link-124" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-124', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-125" 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-125', 'step2_exchange', 'link-125');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"> <tt id="link-126" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-126', 'credentials', 'link-48');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-127" 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-127', 'step2_exchange', 'link-127');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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-126', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt id="link-127" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-127', 'StorageByKeyName', 'link-80');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt id="link-128" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-128', 'CredentialsModel', 'link-81');">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-129" class="py-name"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-129', 'put', 'link-63');">put</a></tt><tt class="py-op">(</tt><tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-130', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</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-131" class="py-name"><a title="apiclient.http.HttpMock.request
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-128', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"> <tt id="link-129" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-129', 'StorageByKeyName', 'link-82');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"> <tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-130', 'CredentialsModel', 'link-83');">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-131" class="py-name"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-131', 'put', 'link-65');">put</a></tt><tt class="py-op">(</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-48');">credentials</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</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-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-131', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="apiclient.schema.Schemas.get
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-133', 'request', 'link-79');">request</a></tt><tt class="py-op">.</tt><tt id="link-134" 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-132', 'get', 'link-56');">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-134', 'get', 'link-58');">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="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"> <tt class="py-comment"># TODO Add error handling here.</tt> </tt>
<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
</div></div><a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"> </tt>
<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt id="link-133" 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-133', 'application', 'link-133');">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-134" 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-134', 'OAuth2Handler', 'link-134');">OAuth2Handler</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt id="link-135" 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-135', 'application', 'link-135');">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-136" 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-136', 'OAuth2Handler', 'link-136');">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="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>
<a name="L536"></a><tt class="py-lineno">536</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="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-name">run_wsgi_app</tt><tt class="py-op">(</tt><tt id="link-135" class="py-name"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-135', 'application', 'link-133');">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="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> <tt class="py-name">run_wsgi_app</tt><tt class="py-op">(</tt><tt id="link-137" class="py-name"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-137', 'application', 'link-135');">application</a></tt><tt class="py-op">)</tt> </tt>
</div><a name="L538"></a><tt class="py-lineno">538</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
@@ -802,7 +813,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 72c99fc..caa9158 100644
--- a/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
+++ b/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
@@ -414,7 +414,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 e07b2b4..371c9e1 100644
--- a/docs/epy/oauth2client.appengine.CredentialsModel-class.html
+++ b/docs/epy/oauth2client.appengine.CredentialsModel-class.html
@@ -248,7 +248,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 \
-0x3207d10>}"><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>
+0x3945690>}"><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>
@@ -315,7 +315,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>
-0x3207d10><code class="variable-group">}</code>
+0x3945690><code class="variable-group">}</code>
</pre></td></tr></table>
</dd>
</dl>
@@ -345,7 +345,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 b964f01..175c71e 100644
--- a/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
+++ b/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
@@ -418,7 +418,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 5e87d75..af3d309 100644
--- a/docs/epy/oauth2client.appengine.FlowProperty-class.html
+++ b/docs/epy/oauth2client.appengine.FlowProperty-class.html
@@ -473,7 +473,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 129c215..c0eae68 100644
--- a/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
+++ b/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
@@ -166,7 +166,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 341500e..d833905 100644
--- a/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
@@ -508,7 +508,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 b8671ac..e1c9df2 100644
--- a/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-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 Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 c8a11a1..ae20628 100644
--- a/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
@@ -259,7 +259,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 97d1371..583a7a9 100644
--- a/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
+++ b/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
@@ -375,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 Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 c2bc7c3..ac3ade8 100644
--- a/docs/epy/oauth2client.client-module.html
+++ b/docs/epy/oauth2client.client-module.html
@@ -772,7 +772,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 627d89f..60fbb80 100644
--- a/docs/epy/oauth2client.client-pysrc.html
+++ b/docs/epy/oauth2client.client-pysrc.html
@@ -102,12 +102,13 @@
<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.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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
+<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.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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,Variable oauth2client.util.logger=oauth2client.util-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt id="link-14" class="py-name" targets="Variable oauth2client.client.EXPIRY_FORMAT=oauth2client.client-module.html#EXPIRY_FORMAT"><a title="oauth2client.client.EXPIRY_FORMAT" class="py-name" href="#" onclick="return doclink('link-14', 'EXPIRY_FORMAT', 'link-14');">EXPIRY_FORMAT</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'%Y-%m-%dT%H:%M:%SZ'</tt> </tt>
@@ -366,18 +367,21 @@
<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.client.Credentials</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-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method oauth2client.client.Storage.acquire_lock()=oauth2client.client.Storage-class.html#acquire_lock,Method oauth2client.file.Storage.acquire_lock()=oauth2client.file.Storage-class.html#acquire_lock,Method oauth2client.multistore_file._MultiStore._Storage.acquire_lock()=oauth2client.multistore_file._MultiStore._Storage-class.html#acquire_lock"><a title="oauth2client.client.Storage.acquire_lock
+<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Method oauth2client.client.Storage.acquire_lock()=oauth2client.client.Storage-class.html#acquire_lock,Method oauth2client.file.Storage.acquire_lock()=oauth2client.file.Storage-class.html#acquire_lock,Method oauth2client.keyring_storage.Storage.acquire_lock()=oauth2client.keyring_storage.Storage-class.html#acquire_lock,Method oauth2client.multistore_file._MultiStore._Storage.acquire_lock()=oauth2client.multistore_file._MultiStore._Storage-class.html#acquire_lock"><a title="oauth2client.client.Storage.acquire_lock
oauth2client.file.Storage.acquire_lock
+oauth2client.keyring_storage.Storage.acquire_lock
oauth2client.multistore_file._MultiStore._Storage.acquire_lock" class="py-name" href="#" onclick="return doclink('link-33', 'acquire_lock', 'link-33');">acquire_lock</a></tt><tt class="py-op">(</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">try</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method oauth2client.appengine.StorageByKeyName.locked_get()=oauth2client.appengine.StorageByKeyName-class.html#locked_get,Method oauth2client.client.Storage.locked_get()=oauth2client.client.Storage-class.html#locked_get,Method oauth2client.django_orm.Storage.locked_get()=oauth2client.django_orm.Storage-class.html#locked_get,Method oauth2client.file.Storage.locked_get()=oauth2client.file.Storage-class.html#locked_get,Method oauth2client.multistore_file._MultiStore._Storage.locked_get()=oauth2client.multistore_file._MultiStore._Storage-class.html#locked_get"><a title="oauth2client.appengine.StorageByKeyName.locked_get
+<a name="L287"></a><tt class="py-lineno"> 287</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-34" class="py-name" targets="Method oauth2client.appengine.StorageByKeyName.locked_get()=oauth2client.appengine.StorageByKeyName-class.html#locked_get,Method oauth2client.client.Storage.locked_get()=oauth2client.client.Storage-class.html#locked_get,Method oauth2client.django_orm.Storage.locked_get()=oauth2client.django_orm.Storage-class.html#locked_get,Method oauth2client.file.Storage.locked_get()=oauth2client.file.Storage-class.html#locked_get,Method oauth2client.keyring_storage.Storage.locked_get()=oauth2client.keyring_storage.Storage-class.html#locked_get,Method oauth2client.multistore_file._MultiStore._Storage.locked_get()=oauth2client.multistore_file._MultiStore._Storage-class.html#locked_get"><a title="oauth2client.appengine.StorageByKeyName.locked_get
oauth2client.client.Storage.locked_get
oauth2client.django_orm.Storage.locked_get
oauth2client.file.Storage.locked_get
+oauth2client.keyring_storage.Storage.locked_get
oauth2client.multistore_file._MultiStore._Storage.locked_get" class="py-name" href="#" onclick="return doclink('link-34', 'locked_get', 'link-34');">locked_get</a></tt><tt class="py-op">(</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">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method oauth2client.client.Storage.release_lock()=oauth2client.client.Storage-class.html#release_lock,Method oauth2client.file.Storage.release_lock()=oauth2client.file.Storage-class.html#release_lock,Method oauth2client.multistore_file._MultiStore._Storage.release_lock()=oauth2client.multistore_file._MultiStore._Storage-class.html#release_lock"><a title="oauth2client.client.Storage.release_lock
+<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Method oauth2client.client.Storage.release_lock()=oauth2client.client.Storage-class.html#release_lock,Method oauth2client.file.Storage.release_lock()=oauth2client.file.Storage-class.html#release_lock,Method oauth2client.keyring_storage.Storage.release_lock()=oauth2client.keyring_storage.Storage-class.html#release_lock,Method oauth2client.multistore_file._MultiStore._Storage.release_lock()=oauth2client.multistore_file._MultiStore._Storage-class.html#release_lock"><a title="oauth2client.client.Storage.release_lock
oauth2client.file.Storage.release_lock
+oauth2client.keyring_storage.Storage.release_lock
oauth2client.multistore_file._MultiStore._Storage.release_lock" class="py-name" href="#" onclick="return doclink('link-35', 'release_lock', 'link-35');">release_lock</a></tt><tt class="py-op">(</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="Storage.put"></a><div id="Storage.put-def"><a name="L291"></a><tt class="py-lineno"> 291</tt> <a class="py-toggle" href="#" id="Storage.put-toggle" onclick="return toggle('Storage.put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.Storage-class.html#put">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>
@@ -390,16 +394,19 @@
<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="oauth2client.client.Storage.acquire_lock
oauth2client.file.Storage.acquire_lock
+oauth2client.keyring_storage.Storage.acquire_lock
oauth2client.multistore_file._MultiStore._Storage.acquire_lock" class="py-name" href="#" onclick="return doclink('link-36', 'acquire_lock', 'link-33');">acquire_lock</a></tt><tt class="py-op">(</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">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</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.appengine.StorageByKeyName.locked_put()=oauth2client.appengine.StorageByKeyName-class.html#locked_put,Method oauth2client.client.Storage.locked_put()=oauth2client.client.Storage-class.html#locked_put,Method oauth2client.django_orm.Storage.locked_put()=oauth2client.django_orm.Storage-class.html#locked_put,Method oauth2client.file.Storage.locked_put()=oauth2client.file.Storage-class.html#locked_put,Method oauth2client.multistore_file._MultiStore._Storage.locked_put()=oauth2client.multistore_file._MultiStore._Storage-class.html#locked_put"><a title="oauth2client.appengine.StorageByKeyName.locked_put
+<a name="L301"></a><tt class="py-lineno"> 301</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.appengine.StorageByKeyName.locked_put()=oauth2client.appengine.StorageByKeyName-class.html#locked_put,Method oauth2client.client.Storage.locked_put()=oauth2client.client.Storage-class.html#locked_put,Method oauth2client.django_orm.Storage.locked_put()=oauth2client.django_orm.Storage-class.html#locked_put,Method oauth2client.file.Storage.locked_put()=oauth2client.file.Storage-class.html#locked_put,Method oauth2client.keyring_storage.Storage.locked_put()=oauth2client.keyring_storage.Storage-class.html#locked_put,Method oauth2client.multistore_file._MultiStore._Storage.locked_put()=oauth2client.multistore_file._MultiStore._Storage-class.html#locked_put"><a title="oauth2client.appengine.StorageByKeyName.locked_put
oauth2client.client.Storage.locked_put
oauth2client.django_orm.Storage.locked_put
oauth2client.file.Storage.locked_put
+oauth2client.keyring_storage.Storage.locked_put
oauth2client.multistore_file._MultiStore._Storage.locked_put" class="py-name" href="#" onclick="return doclink('link-37', 'locked_put', 'link-37');">locked_put</a></tt><tt class="py-op">(</tt><tt id="link-38" 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-38', 'credentials', 'link-38');">credentials</a></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">finally</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">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="oauth2client.client.Storage.release_lock
oauth2client.file.Storage.release_lock
+oauth2client.keyring_storage.Storage.release_lock
oauth2client.multistore_file._MultiStore._Storage.release_lock" class="py-name" href="#" onclick="return doclink('link-39', 'release_lock', 'link-35');">release_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> </tt>
<a name="Storage.delete"></a><div id="Storage.delete-def"><a name="L305"></a><tt class="py-lineno"> 305</tt> <a class="py-toggle" href="#" id="Storage.delete-toggle" onclick="return toggle('Storage.delete');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.Storage-class.html#delete">delete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -413,16 +420,19 @@
<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="oauth2client.client.Storage.acquire_lock
oauth2client.file.Storage.acquire_lock
+oauth2client.keyring_storage.Storage.acquire_lock
oauth2client.multistore_file._MultiStore._Storage.acquire_lock" class="py-name" href="#" onclick="return doclink('link-40', 'acquire_lock', 'link-33');">acquire_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L316"></a><tt class="py-lineno"> 316</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-41" class="py-name" targets="Method oauth2client.appengine.StorageByKeyName.locked_delete()=oauth2client.appengine.StorageByKeyName-class.html#locked_delete,Method oauth2client.client.Storage.locked_delete()=oauth2client.client.Storage-class.html#locked_delete,Method oauth2client.django_orm.Storage.locked_delete()=oauth2client.django_orm.Storage-class.html#locked_delete,Method oauth2client.file.Storage.locked_delete()=oauth2client.file.Storage-class.html#locked_delete,Method oauth2client.multistore_file._MultiStore._Storage.locked_delete()=oauth2client.multistore_file._MultiStore._Storage-class.html#locked_delete"><a title="oauth2client.appengine.StorageByKeyName.locked_delete
+<a name="L316"></a><tt class="py-lineno"> 316</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-41" class="py-name" targets="Method oauth2client.appengine.StorageByKeyName.locked_delete()=oauth2client.appengine.StorageByKeyName-class.html#locked_delete,Method oauth2client.client.Storage.locked_delete()=oauth2client.client.Storage-class.html#locked_delete,Method oauth2client.django_orm.Storage.locked_delete()=oauth2client.django_orm.Storage-class.html#locked_delete,Method oauth2client.file.Storage.locked_delete()=oauth2client.file.Storage-class.html#locked_delete,Method oauth2client.keyring_storage.Storage.locked_delete()=oauth2client.keyring_storage.Storage-class.html#locked_delete,Method oauth2client.multistore_file._MultiStore._Storage.locked_delete()=oauth2client.multistore_file._MultiStore._Storage-class.html#locked_delete"><a title="oauth2client.appengine.StorageByKeyName.locked_delete
oauth2client.client.Storage.locked_delete
oauth2client.django_orm.Storage.locked_delete
oauth2client.file.Storage.locked_delete
+oauth2client.keyring_storage.Storage.locked_delete
oauth2client.multistore_file._MultiStore._Storage.locked_delete" class="py-name" href="#" onclick="return doclink('link-41', 'locked_delete', 'link-41');">locked_delete</a></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-keyword">finally</tt><tt class="py-op">:</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 id="link-42" class="py-name"><a title="oauth2client.client.Storage.release_lock
oauth2client.file.Storage.release_lock
+oauth2client.keyring_storage.Storage.release_lock
oauth2client.multistore_file._MultiStore._Storage.release_lock" class="py-name" href="#" onclick="return doclink('link-42', 'release_lock', 'link-35');">release_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"> </tt>
<a name="OAuth2Credentials"></a><div id="OAuth2Credentials-def"><a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"> </tt>
@@ -515,7 +525,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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
oauth2client.client.OAuth2Credentials._refresh" class="py-name" href="#" onclick="return doclink('link-46', '_refresh', 'link-46');">_refresh</a></tt><tt class="py-op">(</tt><tt class="py-name">request_orig</tt><tt class="py-op">)</tt> </tt>
@@ -543,7 +554,8 @@
oauth2client.client.logger
oauth2client.crypt.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 %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.multistore_file.logger
+oauth2client.util.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 %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L422"></a><tt class="py-lineno"> 422</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
oauth2client.client.OAuth2Credentials._refresh" class="py-name" href="#" onclick="return doclink('link-49', '_refresh', 'link-46');">_refresh</a></tt><tt class="py-op">(</tt><tt class="py-name">request_orig</tt><tt class="py-op">)</tt> </tt>
@@ -651,7 +663,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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="L503"></a><tt class="py-lineno"> 503</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="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
@@ -723,12 +736,14 @@
<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="oauth2client.client.Storage.acquire_lock
oauth2client.file.Storage.acquire_lock
+oauth2client.keyring_storage.Storage.acquire_lock
oauth2client.multistore_file._MultiStore._Storage.acquire_lock" class="py-name" href="#" onclick="return doclink('link-69', 'acquire_lock', 'link-33');">acquire_lock</a></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-keyword">try</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">new_cred</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_get
oauth2client.client.Storage.locked_get
oauth2client.django_orm.Storage.locked_get
oauth2client.file.Storage.locked_get
+oauth2client.keyring_storage.Storage.locked_get
oauth2client.multistore_file._MultiStore._Storage.locked_get" class="py-name" href="#" onclick="return doclink('link-70', 'locked_get', 'link-34');">locked_get</a></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-op">(</tt><tt class="py-name">new_cred</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">new_cred</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-keyword">and</tt> </tt>
<a name="L576"></a><tt class="py-lineno"> 576</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>
@@ -737,13 +752,15 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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="L578"></a><tt class="py-lineno"> 578</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="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"> <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="oauth2client.client.OAuth2Credentials._do_refresh_request" class="py-name" href="#" onclick="return doclink('link-73', '_do_refresh_request', 'link-68');">_do_refresh_request</a></tt><tt class="py-op">(</tt><tt class="py-name">http_request</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">finally</tt><tt class="py-op">:</tt> </tt>
<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="oauth2client.client.Storage.release_lock
oauth2client.file.Storage.release_lock
+oauth2client.keyring_storage.Storage.release_lock
oauth2client.multistore_file._MultiStore._Storage.release_lock" class="py-name" href="#" onclick="return doclink('link-74', 'release_lock', 'link-35');">release_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> </tt>
<a name="OAuth2Credentials._do_refresh_request"></a><div id="OAuth2Credentials._do_refresh_request-def"><a name="L584"></a><tt class="py-lineno"> 584</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._do_refresh_request-toggle" onclick="return toggle('OAuth2Credentials._do_refresh_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request">_do_refresh_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -765,7 +782,8 @@
oauth2client.client.logger
oauth2client.crypt.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">'Refreshing access_token'</tt><tt class="py-op">)</tt> </tt>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-77', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Refreshing access_token'</tt><tt class="py-op">)</tt> </tt>
<a name="L598"></a><tt class="py-lineno"> 598</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="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">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
<a name="L600"></a><tt class="py-lineno"> 600</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>
@@ -786,6 +804,7 @@
oauth2client.client.Storage.locked_put
oauth2client.django_orm.Storage.locked_put
oauth2client.file.Storage.locked_put
+oauth2client.keyring_storage.Storage.locked_put
oauth2client.multistore_file._MultiStore._Storage.locked_put" class="py-name" href="#" onclick="return doclink('link-80', 'locked_put', 'link-37');">locked_put</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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">else</tt><tt class="py-op">:</tt> </tt>
<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-comment"># An {'error':...} response body means the token is expired or revoked,</tt> </tt>
@@ -795,7 +814,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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="L616"></a><tt class="py-lineno"> 616</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="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> <tt class="py-keyword">try</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">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-82', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
@@ -807,6 +827,7 @@
oauth2client.client.Storage.locked_put
oauth2client.django_orm.Storage.locked_put
oauth2client.file.Storage.locked_put
+oauth2client.keyring_storage.Storage.locked_put
oauth2client.multistore_file._MultiStore._Storage.locked_put" class="py-name" href="#" onclick="return doclink('link-83', 'locked_put', 'link-37');">locked_put</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
@@ -852,7 +873,7 @@
<a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"><tt class="py-docstring"> store: callable, a callable that when passed a Credential</tt> </tt>
<a name="L666"></a><tt class="py-lineno"> 666</tt> <tt class="py-line"><tt class="py-docstring"> will store the credential back to where it came from.</tt> </tt>
<a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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__
+<a name="L668"></a><tt class="py-lineno"> 668</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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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.CredentialsField.__init__()=oauth2client.django_orm.CredentialsField-class.html#__init__,Method oauth2client.django_orm.FlowField.__init__()=oauth2client.django_orm.FlowField-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.keyring_storage.Storage.__init__()=oauth2client.keyring_storage.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__
@@ -884,8 +905,11 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.Storage.__init__
oauth2client.locked_file.LockedFile.__init__
oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
@@ -967,8 +991,11 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.Storage.__init__
oauth2client.locked_file.LockedFile.__init__
oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
@@ -1075,8 +1102,11 @@
oauth2client.client.SignedJwtAssertionCredentials.__init__
oauth2client.crypt.Signer.__init__
oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
oauth2client.django_orm.Storage.__init__
oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.Storage.__init__
oauth2client.locked_file.LockedFile.__init__
oauth2client.locked_file._Opener.__init__
oauth2client.multistore_file._MultiStore._Storage.__init__
@@ -1130,7 +1160,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> </tt>
<a name="L828"></a><tt class="py-lineno"> 828</tt> <tt class="py-line"> <tt class="py-name">private_key</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">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt><tt class="py-op">)</tt> </tt>
<a name="L829"></a><tt class="py-lineno"> 829</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>
@@ -1452,7 +1483,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-143', '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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-143', '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="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-144" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-144', '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="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">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="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">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>
@@ -1466,7 +1498,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-146', '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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-146', '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="L1130"></a><tt class="py-lineno">1130</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="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-comment"># you never know what those providers got to say</tt> </tt>
<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
@@ -1548,7 +1581,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 04f10ec..8ff9fa1 100644
--- a/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
@@ -431,7 +431,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 ea5cee9..024518a 100644
--- a/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 31666f5..9f5980f 100644
--- a/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 52a2ff1..8d7c91e 100644
--- a/docs/epy/oauth2client.client.AssertionCredentials-class.html
+++ b/docs/epy/oauth2client.client.AssertionCredentials-class.html
@@ -374,7 +374,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 32c9546..7d13e39 100644
--- a/docs/epy/oauth2client.client.Credentials-class.html
+++ b/docs/epy/oauth2client.client.Credentials-class.html
@@ -528,7 +528,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:28 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 ca8bd25..a1d13a9 100644
--- a/docs/epy/oauth2client.client.Error-class.html
+++ b/docs/epy/oauth2client.client.Error-class.html
@@ -171,7 +171,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 ee9446c..dec807e 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 Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 2e64abe..90ebaa5 100644
--- a/docs/epy/oauth2client.client.FlowExchangeError-class.html
+++ b/docs/epy/oauth2client.client.FlowExchangeError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 0159c3c..86d704f 100644
--- a/docs/epy/oauth2client.client.MemoryCache-class.html
+++ b/docs/epy/oauth2client.client.MemoryCache-class.html
@@ -266,7 +266,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 66d4e12..26d125d 100644
--- a/docs/epy/oauth2client.client.OAuth2Credentials-class.html
+++ b/docs/epy/oauth2client.client.OAuth2Credentials-class.html
@@ -855,7 +855,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 ab64563..4420e8f 100644
--- a/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
+++ b/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
@@ -350,7 +350,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 c1c4f59..81738cc 100644
--- a/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
+++ b/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-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 Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 9c9db6f..bcfa392 100644
--- a/docs/epy/oauth2client.client.Storage-class.html
+++ b/docs/epy/oauth2client.client.Storage-class.html
@@ -57,18 +57,20 @@
<center>
<div class="private"><center> <map id="class_hierarchy_for_storage" name="class_hierarchy_for_storage">
<area shape="rect" href="oauth2client.appengine.StorageByKeyName-class.html" title="appengine.StorageByKeyName" alt="" coords="5,61,208,88"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html" title="Storage" alt="" coords="333,5,400,32"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html" title="Storage" alt="" coords="401,5,468,32"/>
<area shape="rect" href="oauth2client.django_orm.Storage-class.html" title="django_orm.Storage" alt="" coords="232,61,368,88"/>
<area shape="rect" href="oauth2client.file.Storage-class.html" title="file.Storage" alt="" coords="392,61,477,88"/>
-<area shape="rect" href="oauth2client.multistore_file._MultiStore._Storage-class.html" title="multistore_file._MultiStore._Storage" alt="" coords="501,61,728,88"/>
+<area shape="rect" href="oauth2client.keyring_storage.Storage-class.html" title="keyring_storage.Storage" alt="" coords="501,61,664,88"/>
+<area shape="rect" href="oauth2client.multistore_file._MultiStore._Storage-class.html" title="multistore_file._MultiStore._Storage" alt="" coords="688,61,915,88"/>
</map>
<img src="class_hierarchy_for_storage.gif" alt='' usemap="#class_hierarchy_for_storage" ismap="ismap" class="graph-without-title" />
</center></div>
<div class="public" style="display:none"><center> <map id="class_hierarchy_for_storage_2" name="class_hierarchy_for_storage_2">
<area shape="rect" href="oauth2client.appengine.StorageByKeyName-class.html" title="appengine.StorageByKeyName" alt="" coords="5,61,208,88"/>
-<area shape="rect" href="oauth2client.client.Storage-class.html" title="Storage" alt="" coords="267,5,333,32"/>
+<area shape="rect" href="oauth2client.client.Storage-class.html" title="Storage" alt="" coords="333,5,400,32"/>
<area shape="rect" href="oauth2client.django_orm.Storage-class.html" title="django_orm.Storage" alt="" coords="232,61,368,88"/>
<area shape="rect" href="oauth2client.file.Storage-class.html" title="file.Storage" alt="" coords="392,61,477,88"/>
+<area shape="rect" href="oauth2client.keyring_storage.Storage-class.html" title="keyring_storage.Storage" alt="" coords="501,61,664,88"/>
</map>
<img src="class_hierarchy_for_storage_2.gif" alt='' usemap="#class_hierarchy_for_storage_2" ismap="ismap" class="graph-without-title" />
</center></div>
@@ -536,7 +538,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 c820dbc..d1639ef 100644
--- a/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
+++ b/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 e9f319f..3b3b8bd 100644
--- a/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
+++ b/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 65e34c1..1a6595b 100644
--- a/docs/epy/oauth2client.clientsecrets-module.html
+++ b/docs/epy/oauth2client.clientsecrets-module.html
@@ -391,7 +391,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 c235115..b90881a 100644
--- a/docs/epy/oauth2client.clientsecrets-pysrc.html
+++ b/docs/epy/oauth2client.clientsecrets-pysrc.html
@@ -247,7 +247,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 a92d96d..0ed9fa1 100644
--- a/docs/epy/oauth2client.clientsecrets.Error-class.html
+++ b/docs/epy/oauth2client.clientsecrets.Error-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 2cd20e9..1d53744 100644
--- a/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
+++ b/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 4617776..4bba412 100644
--- a/docs/epy/oauth2client.crypt-module.html
+++ b/docs/epy/oauth2client.crypt-module.html
@@ -362,7 +362,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 6a79439..fa9a524 100644
--- a/docs/epy/oauth2client.crypt-pysrc.html
+++ b/docs/epy/oauth2client.crypt-pysrc.html
@@ -79,12 +79,13 @@
<a name="L24"></a><tt class="py-lineno"> 24</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="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>
-<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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,Variable oauth2client.util.logger=oauth2client.util-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-1');">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.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-1', 'logger', 'link-1');">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="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable oauth2client.crypt.CLOCK_SKEW_SECS=oauth2client.crypt-module.html#CLOCK_SKEW_SECS"><a title="oauth2client.crypt.CLOCK_SKEW_SECS" class="py-name" href="#" onclick="return doclink('link-2', 'CLOCK_SKEW_SECS', 'link-2');">CLOCK_SKEW_SECS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">300</tt> <tt class="py-comment"># 5 minutes in seconds</tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable oauth2client.crypt.AUTH_TOKEN_LIFETIME_SECS=oauth2client.crypt-module.html#AUTH_TOKEN_LIFETIME_SECS"><a title="oauth2client.crypt.AUTH_TOKEN_LIFETIME_SECS" class="py-name" href="#" onclick="return doclink('link-3', 'AUTH_TOKEN_LIFETIME_SECS', 'link-3');">AUTH_TOKEN_LIFETIME_SECS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">300</tt> <tt class="py-comment"># 5 minutes in seconds</tt> </tt>
@@ -229,7 +230,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-15', 'logger', 'link-1');">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">segments</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-15', 'logger', 'link-1');">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">segments</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> </tt>
<a name="L168"></a><tt class="py-lineno">168</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">segments</tt><tt class="py-op">)</tt> </tt>
</div><a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> </tt>
@@ -353,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 Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 1e110c7..d4776e2 100644
--- a/docs/epy/oauth2client.crypt.AppIdentityError-class.html
+++ b/docs/epy/oauth2client.crypt.AppIdentityError-class.html
@@ -161,7 +161,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 3264dae..75d810c 100644
--- a/docs/epy/oauth2client.crypt.Signer-class.html
+++ b/docs/epy/oauth2client.crypt.Signer-class.html
@@ -335,7 +335,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:29 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 6b74711..de686be 100644
--- a/docs/epy/oauth2client.crypt.Verifier-class.html
+++ b/docs/epy/oauth2client.crypt.Verifier-class.html
@@ -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 Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 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 9d5b662..94c18f1 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 c41807c..ea23d22 100644
--- a/docs/epy/oauth2client.django_orm-pysrc.html
+++ b/docs/epy/oauth2client.django_orm-pysrc.html
@@ -80,107 +80,198 @@
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">pickle</tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">django</tt><tt class="py-op">.</tt><tt class="py-name">db</tt> <tt class="py-keyword">import</tt> <tt class="py-name">models</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-1', 'oauth2client', 'link-0');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module oauth2client.client=oauth2client.client-module.html"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-2', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" 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="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-1', 'oauth2client', 'link-0');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module oauth2client.client=oauth2client.client-module.html"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-2', 'client', 'link-2');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" 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,Class oauth2client.keyring_storage.Storage=oauth2client.keyring_storage.Storage-class.html"><a title="oauth2client.client.Storage
oauth2client.django_orm.Storage
-oauth2client.file.Storage" class="py-name" href="#" onclick="return doclink('link-3', 'Storage', 'link-3');">Storage</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">BaseStorage</tt> </tt>
+oauth2client.file.Storage
+oauth2client.keyring_storage.Storage" class="py-name" href="#" onclick="return doclink('link-3', 'Storage', 'link-3');">Storage</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">BaseStorage</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt>
<a name="CredentialsField"></a><div id="CredentialsField-def"><a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="CredentialsField-toggle" onclick="return toggle('CredentialsField');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html">CredentialsField</a><tt class="py-op">(</tt><tt class="py-base-class">models</tt><tt class="py-op">.</tt><tt class="py-base-class">Field</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="CredentialsField-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="CredentialsField-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-name">__metaclass__</tt> <tt class="py-op">=</tt> <tt class="py-name">models</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Class django.db.models.fields.subclassing.SubfieldBase=django.db.models.fields.subclassing.SubfieldBase-class.html"><a title="django.db.models.fields.subclassing.SubfieldBase" class="py-name" href="#" onclick="return doclink('link-4', 'SubfieldBase', 'link-4');">SubfieldBase</a></tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> </tt>
-<a name="CredentialsField.get_internal_type"></a><div id="CredentialsField.get_internal_type-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="CredentialsField.get_internal_type-toggle" onclick="return toggle('CredentialsField.get_internal_type');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#get_internal_type">get_internal_type</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="CredentialsField.get_internal_type-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.get_internal_type-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"TextField"</tt> </tt>
-</div><a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> </tt>
-<a name="CredentialsField.to_python"></a><div id="CredentialsField.to_python-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="CredentialsField.to_python-toggle" onclick="return toggle('CredentialsField.to_python');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#to_python">to_python</a><tt class="py-op">(</tt><tt class="py-param">self</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="CredentialsField.to_python-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.to_python-expanded"><a name="L38"></a><tt class="py-lineno"> 38</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="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</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">value</tt><tt class="py-op">,</tt> <tt id="link-5" class="py-name"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-5', 'oauth2client', 'link-0');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-6', 'client', 'link-2');">client</a></tt><tt class="py-op">.</tt><tt id="link-7" 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-7', 'Credentials', 'link-7');">Credentials</a></tt><tt class="py-op">)</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">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'loads', 'link-8');">loads</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">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> </tt>
-<a name="CredentialsField.get_db_prep_value"></a><div id="CredentialsField.get_db_prep_value-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="CredentialsField.get_db_prep_value-toggle" onclick="return toggle('CredentialsField.get_db_prep_value');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#get_db_prep_value">get_db_prep_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">connection</tt><tt class="py-op">,</tt> <tt class="py-param">prepared</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="CredentialsField.get_db_prep_value-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.get_db_prep_value-expanded"><a name="L45"></a><tt class="py-lineno"> 45</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="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">return</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">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><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> <tt class="py-line"> </tt>
-<a name="FlowField"></a><div id="FlowField-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="FlowField-toggle" onclick="return toggle('FlowField');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html">FlowField</a><tt class="py-op">(</tt><tt class="py-base-class">models</tt><tt class="py-op">.</tt><tt class="py-base-class">Field</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="FlowField-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FlowField-expanded"><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-name">__metaclass__</tt> <tt class="py-op">=</tt> <tt class="py-name">models</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="django.db.models.fields.subclassing.SubfieldBase" class="py-name" href="#" onclick="return doclink('link-9', 'SubfieldBase', 'link-4');">SubfieldBase</a></tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> </tt>
-<a name="FlowField.get_internal_type"></a><div id="FlowField.get_internal_type-def"><a name="L54"></a><tt class="py-lineno"> 54</tt> <a class="py-toggle" href="#" id="FlowField.get_internal_type-toggle" onclick="return toggle('FlowField.get_internal_type');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#get_internal_type">get_internal_type</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="FlowField.get_internal_type-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.get_internal_type-expanded"><a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"TextField"</tt> </tt>
-</div><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> </tt>
-<a name="FlowField.to_python"></a><div id="FlowField.to_python-def"><a name="L57"></a><tt class="py-lineno"> 57</tt> <a class="py-toggle" href="#" id="FlowField.to_python-toggle" onclick="return toggle('FlowField.to_python');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#to_python">to_python</a><tt class="py-op">(</tt><tt class="py-param">self</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="FlowField.to_python-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.to_python-expanded"><a name="L58"></a><tt class="py-lineno"> 58</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="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">return</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">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-10', 'oauth2client', 'link-0');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-11', 'client', 'link-2');">client</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Class oauth2client.client.Flow=oauth2client.client.Flow-class.html"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-12', 'Flow', 'link-12');">Flow</a></tt><tt class="py-op">)</tt><tt class="py-op">:</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">value</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-13', 'loads', 'link-8');">loads</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">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="CredentialsField.__init__"></a><div id="CredentialsField.__init__-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="CredentialsField.__init__-toggle" onclick="return toggle('CredentialsField.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#__init__">__init__</a><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">args</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>
+</div><div id="CredentialsField.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.__init__-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'null'</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="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-string">'null'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name" targets="Class oauth2client.django_orm.CredentialsField=oauth2client.django_orm.CredentialsField-class.html"><a title="oauth2client.django_orm.CredentialsField" class="py-name" href="#" onclick="return doclink('link-5', 'CredentialsField', 'link-5');">CredentialsField</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-6" 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.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-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.CredentialsField.__init__()=oauth2client.django_orm.CredentialsField-class.html#__init__,Method oauth2client.django_orm.FlowField.__init__()=oauth2client.django_orm.FlowField-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.keyring_storage.Storage.__init__()=oauth2client.keyring_storage.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__
+apiclient.http.BatchHttpRequest.__init__
+apiclient.http.HttpMock.__init__
+apiclient.http.HttpMockSequence.__init__
+apiclient.http.HttpRequest.__init__
+apiclient.http.HttpRequestMock.__init__
+apiclient.http.MediaDownloadProgress.__init__
+apiclient.http.MediaFileUpload.__init__
+apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseDownload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
+apiclient.http.MediaUploadProgress.__init__
+apiclient.http.RequestMockBuilder.__init__
+apiclient.model.JsonModel.__init__
+apiclient.model.ProtocolBufferModel.__init__
+apiclient.schema.Schemas.__init__
+apiclient.schema._SchemaToStruct.__init__
+oauth2client.appengine.AppAssertionCredentials.__init__
+oauth2client.appengine.OAuth2Decorator.__init__
+oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__
+oauth2client.appengine.StorageByKeyName.__init__
+oauth2client.client.AccessTokenCredentials.__init__
+oauth2client.client.AssertionCredentials.__init__
+oauth2client.client.MemoryCache.__init__
+oauth2client.client.OAuth2Credentials.__init__
+oauth2client.client.OAuth2WebServerFlow.__init__
+oauth2client.client.SignedJwtAssertionCredentials.__init__
+oauth2client.crypt.Signer.__init__
+oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
+oauth2client.django_orm.Storage.__init__
+oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.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-6', '__init__', 'link-6');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</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="CredentialsField.get_internal_type"></a><div id="CredentialsField.get_internal_type-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="CredentialsField.get_internal_type-toggle" onclick="return toggle('CredentialsField.get_internal_type');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#get_internal_type">get_internal_type</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="CredentialsField.get_internal_type-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.get_internal_type-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"TextField"</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
+<a name="CredentialsField.to_python"></a><div id="CredentialsField.to_python-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="CredentialsField.to_python-toggle" onclick="return toggle('CredentialsField.to_python');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#to_python">to_python</a><tt class="py-op">(</tt><tt class="py-param">self</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="CredentialsField.to_python-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.to_python-expanded"><a name="L43"></a><tt class="py-lineno"> 43</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="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</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">value</tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-7', 'oauth2client', 'link-0');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-8', 'client', 'link-2');">client</a></tt><tt class="py-op">.</tt><tt id="link-9" 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-9', 'Credentials', 'link-9');">Credentials</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-10" 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-10', 'loads', 'link-10');">loads</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">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> </tt>
+<a name="CredentialsField.get_db_prep_value"></a><div id="CredentialsField.get_db_prep_value-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="CredentialsField.get_db_prep_value-toggle" onclick="return toggle('CredentialsField.get_db_prep_value');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.CredentialsField-class.html#get_db_prep_value">get_db_prep_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">connection</tt><tt class="py-op">,</tt> <tt class="py-param">prepared</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="CredentialsField.get_db_prep_value-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="CredentialsField.get_db_prep_value-expanded"><a name="L50"></a><tt class="py-lineno"> 50</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="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">return</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">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="FlowField"></a><div id="FlowField-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="FlowField-toggle" onclick="return toggle('FlowField');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html">FlowField</a><tt class="py-op">(</tt><tt class="py-base-class">models</tt><tt class="py-op">.</tt><tt class="py-base-class">Field</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="FlowField-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="FlowField-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">__metaclass__</tt> <tt class="py-op">=</tt> <tt class="py-name">models</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="django.db.models.fields.subclassing.SubfieldBase" class="py-name" href="#" onclick="return doclink('link-11', 'SubfieldBase', 'link-4');">SubfieldBase</a></tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> </tt>
+<a name="FlowField.__init__"></a><div id="FlowField.__init__-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="FlowField.__init__-toggle" onclick="return toggle('FlowField.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#__init__">__init__</a><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">args</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>
+</div><div id="FlowField.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.__init__-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'null'</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="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-string">'null'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-12" class="py-name" targets="Class oauth2client.django_orm.FlowField=oauth2client.django_orm.FlowField-class.html"><a title="oauth2client.django_orm.FlowField" class="py-name" href="#" onclick="return doclink('link-12', 'FlowField', 'link-12');">FlowField</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-13" class="py-name"><a title="apiclient.errors.BatchError.__init__
+apiclient.errors.HttpError.__init__
+apiclient.errors.UnexpectedBodyError.__init__
+apiclient.errors.UnexpectedMethodError.__init__
+apiclient.http.BatchHttpRequest.__init__
+apiclient.http.HttpMock.__init__
+apiclient.http.HttpMockSequence.__init__
+apiclient.http.HttpRequest.__init__
+apiclient.http.HttpRequestMock.__init__
+apiclient.http.MediaDownloadProgress.__init__
+apiclient.http.MediaFileUpload.__init__
+apiclient.http.MediaInMemoryUpload.__init__
+apiclient.http.MediaIoBaseDownload.__init__
+apiclient.http.MediaIoBaseUpload.__init__
+apiclient.http.MediaUploadProgress.__init__
+apiclient.http.RequestMockBuilder.__init__
+apiclient.model.JsonModel.__init__
+apiclient.model.ProtocolBufferModel.__init__
+apiclient.schema.Schemas.__init__
+apiclient.schema._SchemaToStruct.__init__
+oauth2client.appengine.AppAssertionCredentials.__init__
+oauth2client.appengine.OAuth2Decorator.__init__
+oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__
+oauth2client.appengine.StorageByKeyName.__init__
+oauth2client.client.AccessTokenCredentials.__init__
+oauth2client.client.AssertionCredentials.__init__
+oauth2client.client.MemoryCache.__init__
+oauth2client.client.OAuth2Credentials.__init__
+oauth2client.client.OAuth2WebServerFlow.__init__
+oauth2client.client.SignedJwtAssertionCredentials.__init__
+oauth2client.crypt.Signer.__init__
+oauth2client.crypt.Verifier.__init__
+oauth2client.django_orm.CredentialsField.__init__
+oauth2client.django_orm.FlowField.__init__
+oauth2client.django_orm.Storage.__init__
+oauth2client.file.Storage.__init__
+oauth2client.keyring_storage.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-13', '__init__', 'link-6');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">args</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
</div><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
-<a name="FlowField.get_db_prep_value"></a><div id="FlowField.get_db_prep_value-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="FlowField.get_db_prep_value-toggle" onclick="return toggle('FlowField.get_db_prep_value');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#get_db_prep_value">get_db_prep_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">connection</tt><tt class="py-op">,</tt> <tt class="py-param">prepared</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="FlowField.get_db_prep_value-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.get_db_prep_value-expanded"><a name="L65"></a><tt class="py-lineno"> 65</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="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">return</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">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><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>
-<a name="Storage"></a><div id="Storage-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="Storage-toggle" onclick="return toggle('Storage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.django_orm.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="Storage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Storage-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-docstring">"""Store and retrieve a single credential to and from</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> the datastore.</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> This Storage helper presumes the Credentials</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> have been stored as a CredenialsField</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> on a db model class.</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
-<a name="Storage.__init__"></a><div id="Storage.__init__-def"><a name="L79"></a><tt class="py-lineno"> 79</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.django_orm.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">model_class</tt><tt class="py-op">,</tt> <tt class="py-param">key_name</tt><tt class="py-op">,</tt> <tt class="py-param">key_value</tt><tt class="py-op">,</tt> <tt class="py-param">property_name</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="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for Storage.</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"> model: db.Model, model class</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> key_name: string, key name for the entity that has the credentials</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> key_value: string, key value for the entity that has the credentials</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> property_name: string, name of the property that is an CredentialsProperty</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt> <tt class="py-op">=</tt> <tt class="py-name">model_class</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <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">key_name</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</tt> <tt class="py-op">=</tt> <tt class="py-name">key_value</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">property_name</tt> <tt class="py-op">=</tt> <tt class="py-name">property_name</tt> </tt>
-</div><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
-<a name="Storage.locked_get"></a><div id="Storage.locked_get-def"><a name="L93"></a><tt class="py-lineno"> 93</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.django_orm.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="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve Credential from datastore.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.Credentials</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-name">credential</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>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">query</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">key_name</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</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">entities</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt><tt class="py-op">.</tt><tt class="py-name">objects</tt><tt class="py-op">.</tt><tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">query</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">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">entities</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="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">entities</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">self</tt><tt class="py-op">.</tt><tt class="py-name">property_name</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">if</tt> <tt class="py-name">credential</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">credential</tt><tt class="py-op">,</tt> <tt class="py-string">'set_store'</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">credential</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="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">credential</tt> </tt>
-</div><a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
-<a name="Storage.locked_put"></a><div id="Storage.locked_put-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="Storage.locked_put-toggle" onclick="return toggle('Storage.locked_put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.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="Storage.locked_put-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_put-expanded"><a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a Credentials to the datastore.</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">args</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">key_name</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</tt><tt class="py-op">}</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">entity</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">args</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">setattr</tt><tt class="py-op">(</tt><tt class="py-name">entity</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">property_name</tt><tt class="py-op">,</tt> <tt id="link-15" 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-15', 'credentials', 'link-15');">credentials</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">entity</tt><tt class="py-op">.</tt><tt class="py-name">save</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> </tt>
-<a name="Storage.locked_delete"></a><div id="Storage.locked_delete-def"><a name="L120"></a><tt class="py-lineno">120</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.django_orm.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="Storage.locked_delete-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_delete-expanded"><a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete Credentials from the datastore."""</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">query</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">key_name</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</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">entities</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt><tt class="py-op">.</tt><tt class="py-name">objects</tt><tt class="py-op">.</tt><tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">query</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method oauth2client.client.MemoryCache.delete()=oauth2client.client.MemoryCache-class.html#delete,Method oauth2client.client.Storage.delete()=oauth2client.client.Storage-class.html#delete"><a title="oauth2client.client.MemoryCache.delete
-oauth2client.client.Storage.delete" class="py-name" href="#" onclick="return doclink('link-16', 'delete', 'link-16');">delete</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<a name="FlowField.get_internal_type"></a><div id="FlowField.get_internal_type-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="FlowField.get_internal_type-toggle" onclick="return toggle('FlowField.get_internal_type');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#get_internal_type">get_internal_type</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="FlowField.get_internal_type-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.get_internal_type-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">"TextField"</tt> </tt>
+</div><a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> </tt>
+<a name="FlowField.to_python"></a><div id="FlowField.to_python-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="FlowField.to_python-toggle" onclick="return toggle('FlowField.to_python');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#to_python">to_python</a><tt class="py-op">(</tt><tt class="py-param">self</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="FlowField.to_python-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.to_python-expanded"><a name="L68"></a><tt class="py-lineno"> 68</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="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</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">value</tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name"><a title="oauth2client" class="py-name" href="#" onclick="return doclink('link-14', 'oauth2client', 'link-0');">oauth2client</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-15', 'client', 'link-2');">client</a></tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Class oauth2client.client.Flow=oauth2client.client.Flow-class.html"><a title="oauth2client.client.Flow" class="py-name" href="#" onclick="return doclink('link-16', 'Flow', 'link-16');">Flow</a></tt><tt class="py-op">)</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">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-17', 'loads', 'link-10');">loads</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">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> </tt>
+<a name="FlowField.get_db_prep_value"></a><div id="FlowField.get_db_prep_value-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="FlowField.get_db_prep_value-toggle" onclick="return toggle('FlowField.get_db_prep_value');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.FlowField-class.html#get_db_prep_value">get_db_prep_value</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">connection</tt><tt class="py-op">,</tt> <tt class="py-param">prepared</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="FlowField.get_db_prep_value-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="FlowField.get_db_prep_value-expanded"><a name="L75"></a><tt class="py-lineno"> 75</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="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">return</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">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><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> <tt class="py-line"> </tt>
+<a name="Storage"></a><div id="Storage-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="Storage-toggle" onclick="return toggle('Storage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.django_orm.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="Storage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Storage-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-docstring">"""Store and retrieve a single credential to and from</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> the datastore.</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"> This Storage helper presumes the Credentials</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> have been stored as a CredenialsField</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> on a db model class.</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>
+<a name="Storage.__init__"></a><div id="Storage.__init__-def"><a name="L89"></a><tt class="py-lineno"> 89</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.django_orm.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">model_class</tt><tt class="py-op">,</tt> <tt class="py-param">key_name</tt><tt class="py-op">,</tt> <tt class="py-param">key_value</tt><tt class="py-op">,</tt> <tt class="py-param">property_name</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="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor for Storage.</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> model: db.Model, model class</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> key_name: string, key name for the entity that has the credentials</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> key_value: string, key value for the entity that has the credentials</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> property_name: string, name of the property that is an CredentialsProperty</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">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt> <tt class="py-op">=</tt> <tt class="py-name">model_class</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">key_name</tt> <tt class="py-op">=</tt> <tt class="py-name">key_name</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">key_value</tt> <tt class="py-op">=</tt> <tt class="py-name">key_value</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">property_name</tt> <tt class="py-op">=</tt> <tt class="py-name">property_name</tt> </tt>
+</div><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
+<a name="Storage.locked_get"></a><div id="Storage.locked_get-def"><a name="L103"></a><tt class="py-lineno">103</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.django_orm.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="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve Credential from datastore.</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-docstring"> Returns:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.Credentials</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</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="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">query</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">key_name</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</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">entities</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt><tt class="py-op">.</tt><tt class="py-name">objects</tt><tt class="py-op">.</tt><tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</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">entities</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="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">credential</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">entities</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">self</tt><tt class="py-op">.</tt><tt class="py-name">property_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">credential</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">credential</tt><tt class="py-op">,</tt> <tt class="py-string">'set_store'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">credential</tt><tt class="py-op">.</tt><tt id="link-18" 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-18', 'set_store', 'link-18');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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">return</tt> <tt class="py-name">credential</tt> </tt>
+</div><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
+<a name="Storage.locked_put"></a><div id="Storage.locked_put-def"><a name="L119"></a><tt class="py-lineno">119</tt> <a class="py-toggle" href="#" id="Storage.locked_put-toggle" onclick="return toggle('Storage.locked_put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.django_orm.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="Storage.locked_put-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_put-expanded"><a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-docstring">"""Write a Credentials to the datastore.</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"> credentials: Credentials, the credentials to store.</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-name">args</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">key_name</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</tt><tt class="py-op">}</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">entity</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">entity</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">property_name</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>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">entity</tt><tt class="py-op">.</tt><tt class="py-name">save</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="Storage.locked_delete"></a><div id="Storage.locked_delete-def"><a name="L130"></a><tt class="py-lineno">130</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.django_orm.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="Storage.locked_delete-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_delete-expanded"><a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete Credentials from the datastore."""</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">query</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">key_name</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">key_value</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">entities</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">model_class</tt><tt class="py-op">.</tt><tt class="py-name">objects</tt><tt class="py-op">.</tt><tt class="py-name">filter</tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">query</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Method oauth2client.client.MemoryCache.delete()=oauth2client.client.MemoryCache-class.html#delete,Method oauth2client.client.Storage.delete()=oauth2client.client.Storage-class.html#delete"><a title="oauth2client.client.MemoryCache.delete
+oauth2client.client.Storage.delete" class="py-name" href="#" onclick="return doclink('link-20', 'delete', 'link-20');">delete</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
@@ -210,7 +301,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 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 daa25ab..cb63b05 100644
--- a/docs/epy/oauth2client.django_orm.CredentialsField-class.html
+++ b/docs/epy/oauth2client.django_orm.CredentialsField-class.html
@@ -112,6 +112,25 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
+ <td><span class="summary-sig"><a href="oauth2client.django_orm.CredentialsField-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">*args</span>,
+ <span class="summary-sig-arg">**kwargs</span>)</span><br />
+ x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.django_orm-pysrc.html#CredentialsField.__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="oauth2client.django_orm.CredentialsField-class.html#get_internal_type" class="summary-sig-name">get_internal_type</a>(<span class="summary-sig-arg">self</span>)</span></td>
<td align="right" valign="top">
<span class="codelink"><a href="oauth2client.django_orm-pysrc.html#CredentialsField.get_internal_type">source code</a></span>
@@ -185,7 +204,6 @@
<p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b>:
<code>__cmp__</code>,
<code>__deepcopy__</code>,
- <code>__init__</code>,
<code>__repr__</code>,
<code>bind</code>,
<code>clean</code>,
@@ -312,6 +330,35 @@
</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">*args</span>,
+ <span class="sig-arg">**kwargs</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.django_orm-pysrc.html#CredentialsField.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
<a name="get_internal_type"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -445,7 +492,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 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 f01acc1..d9b9cb0 100644
--- a/docs/epy/oauth2client.django_orm.FlowField-class.html
+++ b/docs/epy/oauth2client.django_orm.FlowField-class.html
@@ -112,6 +112,25 @@
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
+ <td><span class="summary-sig"><a href="oauth2client.django_orm.FlowField-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">*args</span>,
+ <span class="summary-sig-arg">**kwargs</span>)</span><br />
+ x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.django_orm-pysrc.html#FlowField.__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="oauth2client.django_orm.FlowField-class.html#get_internal_type" class="summary-sig-name">get_internal_type</a>(<span class="summary-sig-arg">self</span>)</span></td>
<td align="right" valign="top">
<span class="codelink"><a href="oauth2client.django_orm-pysrc.html#FlowField.get_internal_type">source code</a></span>
@@ -185,7 +204,6 @@
<p class="indent-wrapped-lines"><b>Inherited from <code>django.db.models.fields.Field</code></b>:
<code>__cmp__</code>,
<code>__deepcopy__</code>,
- <code>__init__</code>,
<code>__repr__</code>,
<code>bind</code>,
<code>clean</code>,
@@ -312,6 +330,35 @@
</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">*args</span>,
+ <span class="sig-arg">**kwargs</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.django_orm-pysrc.html#FlowField.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
<a name="get_internal_type"></a>
<div>
<table class="details" border="1" cellpadding="3"
@@ -445,7 +492,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 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 69a9057..8caf195 100644
--- a/docs/epy/oauth2client.django_orm.Storage-class.html
+++ b/docs/epy/oauth2client.django_orm.Storage-class.html
@@ -374,7 +374,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 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 6a80195..f5dadfa 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 a7654c9..9544daa 100644
--- a/docs/epy/oauth2client.file-pysrc.html
+++ b/docs/epy/oauth2client.file-pysrc.html
@@ -80,9 +80,10 @@
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">threading</tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</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="L28"></a><tt class="py-lineno"> 28</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="L28"></a><tt class="py-lineno"> 28</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,Class oauth2client.keyring_storage.Storage=oauth2client.keyring_storage.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>
+oauth2client.file.Storage
+oauth2client.keyring_storage.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="L29"></a><tt class="py-lineno"> 29</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="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> </tt>
@@ -201,7 +202,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 2126366..93c1063 100644
--- a/docs/epy/oauth2client.file.Storage-class.html
+++ b/docs/epy/oauth2client.file.Storage-class.html
@@ -490,7 +490,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.keyring_storage-module.html b/docs/epy/oauth2client.keyring_storage-module.html
new file mode 100644
index 0000000..854aeb5
--- /dev/null
+++ b/docs/epy/oauth2client.keyring_storage-module.html
@@ -0,0 +1,160 @@
+<?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.keyring_storage</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 keyring_storage
+ </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.keyring_storage-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module keyring_storage</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html">source code</a></span></p>
+<pre class="literalblock">
+A keyring based Storage.
+
+A Storage for Credentials that uses the keyring module.
+
+</pre>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ jcgregorio@google.com (Joe Gregorio)
+ </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.keyring_storage.Storage-class.html" class="summary-name">Storage</a><br />
+ Store and retrieve a single credential to and from the keyring.
+ </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="__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 Fri Aug 3 07:38:25 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.keyring_storage-pysrc.html b/docs/epy/oauth2client.keyring_storage-pysrc.html
new file mode 100644
index 0000000..9c64ae0
--- /dev/null
+++ b/docs/epy/oauth2client.keyring_storage-pysrc.html
@@ -0,0 +1,224 @@
+<?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.keyring_storage</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 keyring_storage
+ </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.keyring_storage-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="oauth2client.keyring_storage-module.html">Module oauth2client.keyring_storage</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) 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>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"># http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"># See the License for the specific language governing permissions and</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"># limitations under the License.</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring">"""A keyring based Storage.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-docstring">A Storage for Credentials that uses the keyring module.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">keyring</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">threading</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">from</tt> <tt id="link-0" class="py-name" targets="Module oauth2client.client=oauth2client.client-module.html"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-0', 'client', 'link-0');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" 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,Class oauth2client.keyring_storage.Storage=oauth2client.keyring_storage.Storage-class.html"><a title="oauth2client.client.Storage
+oauth2client.django_orm.Storage
+oauth2client.file.Storage
+oauth2client.keyring_storage.Storage" class="py-name" href="#" onclick="return doclink('link-1', 'Storage', 'link-1');">Storage</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">BaseStorage</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="oauth2client.client" class="py-name" href="#" onclick="return doclink('link-2', 'client', 'link-0');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" 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-3', 'Credentials', 'link-3');">Credentials</a></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="Storage"></a><div id="Storage-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="Storage-toggle" onclick="return toggle('Storage');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.keyring_storage.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="Storage-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Storage-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"""Store and retrieve a single credential to and from the keyring.</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> To use this module you must have the keyring module installed. See</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> <http://pypi.python.org/pypi/keyring/>. This is an optional module and is not</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> installed with oauth2client by default because it does not work on all the</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> platforms that oauth2client supports, such as Google App Engine.</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> The keyring module <http://pypi.python.org/pypi/keyring/> is a cross-platform</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"> library for access the keyring capabilities of the local system. The user will</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> be prompted for their keyring password when this module is used, and the</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> manner in which the user is prompted will vary per platform.</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"> Usage:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> from oauth2client.keyring_storage import Storage</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-docstring"> s = Storage('name_of_application', 'user1')</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> credentials = s.get()</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> </tt>
+<a name="Storage.__init__"></a><div id="Storage.__init__-def"><a name="L50"></a><tt class="py-lineno"> 50</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.keyring_storage.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">service_name</tt><tt class="py-op">,</tt> <tt class="py-param">user_name</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="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> Args:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> service_name: string, The name of the service under which the credentials</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> are stored.</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> user_name: string, The name of the user to store credentials for.</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_service_name</tt> <tt class="py-op">=</tt> <tt class="py-name">service_name</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">_user_name</tt> <tt class="py-op">=</tt> <tt class="py-name">user_name</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 id="link-4" 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-4', '_lock', 'link-4');">_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="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
+<a name="Storage.acquire_lock"></a><div id="Storage.acquire_lock-def"><a name="L62"></a><tt class="py-lineno"> 62</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.keyring_storage.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="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-docstring">"""Acquires any lock necessary to access this Storage.</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> This lock is not reentrant."""</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-5', '_lock', 'link-4');">_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="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
+<a name="Storage.release_lock"></a><div id="Storage.release_lock-def"><a name="L68"></a><tt class="py-lineno"> 68</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.keyring_storage.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="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-docstring">"""Release the Storage lock.</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</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="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> RuntimeError.</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> """</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 id="link-6" class="py-name"><a title="oauth2client.multistore_file._MultiStore._lock" class="py-name" href="#" onclick="return doclink('link-6', '_lock', 'link-4');">_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="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="Storage.locked_get"></a><div id="Storage.locked_get-def"><a name="L76"></a><tt class="py-lineno"> 76</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.keyring_storage.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="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-docstring">"""Retrieve Credential from file.</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> Returns:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> oauth2client.client.Credentials</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 id="link-7" 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-7', 'credentials', 'link-7');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">keyring</tt><tt class="py-op">.</tt><tt class="py-name">get_password</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_service_name</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_user_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">content</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="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt id="link-8" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-8', 'credentials', 'link-7');">credentials</a></tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-9', 'Credentials', 'link-3');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-10" 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-10', 'new_from_json', 'link-10');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</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-7');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-12" 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-12', 'set_store', 'link-12');">set_store</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-13" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-13', 'credentials', 'link-7');">credentials</a></tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="Storage.locked_put"></a><div id="Storage.locked_put-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="Storage.locked_put-toggle" onclick="return toggle('Storage.locked_put');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.keyring_storage.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="Storage.locked_put-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_put-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-docstring">"""Write Credentials to file.</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"> Args:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">keyring</tt><tt class="py-op">.</tt><tt class="py-name">set_password</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_service_name</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_user_name</tt><tt class="py-op">,</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</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-7');">credentials</a></tt><tt class="py-op">.</tt><tt id="link-15" 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-15', 'to_json', 'link-15');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
+<a name="Storage.locked_delete"></a><div id="Storage.locked_delete-def"><a name="L103"></a><tt class="py-lineno">103</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.keyring_storage.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="Storage.locked_delete-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Storage.locked_delete-expanded"><a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-docstring">"""Delete Credentials file.</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-docstring"> Args:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> credentials: Credentials, the credentials to store.</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">keyring</tt><tt class="py-op">.</tt><tt class="py-name">set_password</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_service_name</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_user_name</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L110"></a><tt class="py-lineno">110</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 Fri Aug 3 07:38:32 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.keyring_storage.Storage-class.html b/docs/epy/oauth2client.keyring_storage.Storage-class.html
new file mode 100644
index 0000000..8a65006
--- /dev/null
+++ b/docs/epy/oauth2client.keyring_storage.Storage-class.html
@@ -0,0 +1,492 @@
+<?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.keyring_storage.Storage</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.keyring_storage-module.html">Module keyring_storage</a> ::
+ Class Storage
+ </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.keyring_storage.Storage-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Storage</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage">source code</a></span></p>
+<center>
+<center> <map id="class_hierarchy_for_storage_5" name="class_hierarchy_for_storage_5">
+<area shape="rect" href="oauth2client.client.Storage-class.html" title="client.Storage" alt="" coords="5,5,107,32"/>
+<area shape="rect" href="oauth2client.keyring_storage.Storage-class.html" title="Storage" alt="" coords="23,61,89,88"/>
+</map>
+ <img src="class_hierarchy_for_storage_5.gif" alt='' usemap="#class_hierarchy_for_storage_5" ismap="ismap" class="graph-without-title" />
+</center>
+</center>
+<hr />
+<pre class="literalblock">
+Store and retrieve a single credential to and from the keyring.
+
+To use this module you must have the keyring module installed. See
+<http://pypi.python.org/pypi/keyring/>. This is an optional module and is not
+installed with oauth2client by default because it does not work on all the
+platforms that oauth2client supports, such as Google App Engine.
+
+The keyring module <http://pypi.python.org/pypi/keyring/> is a cross-platform
+library for access the keyring capabilities of the local system. The user will
+be prompted for their keyring password when this module is used, and the
+manner in which the user is prompted will vary per platform.
+
+Usage:
+ from oauth2client.keyring_storage import Storage
+
+ s = Storage('name_of_application', 'user1')
+ credentials = s.get()
+
+</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.keyring_storage.Storage-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">service_name</span>,
+ <span class="summary-sig-arg">user_name</span>)</span><br />
+ Constructor.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.__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="oauth2client.keyring_storage.Storage-class.html#acquire_lock" class="summary-sig-name">acquire_lock</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Acquires any lock necessary to access this Storage.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.acquire_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.keyring_storage.Storage-class.html#release_lock" class="summary-sig-name">release_lock</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Release the Storage lock.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.release_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.keyring_storage.Storage-class.html#locked_get" class="summary-sig-name">locked_get</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Retrieve Credential from file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.locked_get">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.keyring_storage.Storage-class.html#locked_put" class="summary-sig-name">locked_put</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">credentials</span>)</span><br />
+ Write Credentials to file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.locked_put">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.keyring_storage.Storage-class.html#locked_delete" class="summary-sig-name">locked_delete</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Delete Credentials file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.locked_delete">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.client.Storage-class.html">client.Storage</a></code></b>:
+ <code><a href="oauth2client.client.Storage-class.html#delete">delete</a></code>,
+ <code><a href="oauth2client.client.Storage-class.html#get">get</a></code>,
+ <code><a href="oauth2client.client.Storage-class.html#put">put</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="__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">service_name</span>,
+ <span class="sig-arg">user_name</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.__init__">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Constructor.
+
+Args:
+ service_name: string, The name of the service under which the credentials
+ are stored.
+ user_name: string, The name of the user to store credentials for.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="acquire_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">acquire_lock</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.acquire_lock">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Acquires any lock necessary to access this Storage.
+
+This lock is not reentrant.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.client.Storage-class.html#acquire_lock">client.Storage.acquire_lock</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="release_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">release_lock</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.release_lock">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Release the Storage lock.
+
+Trying to release a lock that isn't held will result in a
+RuntimeError.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.client.Storage-class.html#release_lock">client.Storage.release_lock</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="locked_get"></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">locked_get</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.locked_get">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Retrieve Credential from file.
+
+Returns:
+ oauth2client.client.Credentials
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.client.Storage-class.html#locked_get">client.Storage.locked_get</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="locked_put"></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">locked_put</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">credentials</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.locked_put">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Write Credentials to file.
+
+Args:
+ credentials: Credentials, the credentials to store.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.client.Storage-class.html#locked_put">client.Storage.locked_put</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="locked_delete"></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">locked_delete</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="oauth2client.keyring_storage-pysrc.html#Storage.locked_delete">source code</a></span>
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+Delete Credentials file.
+
+Args:
+ credentials: Credentials, the credentials to store.
+
+</pre>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="oauth2client.client.Storage-class.html#locked_delete">client.Storage.locked_delete</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 Fri Aug 3 07:38:30 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-module.html b/docs/epy/oauth2client.locked_file-module.html
index 07b8051..5abb843 100644
--- a/docs/epy/oauth2client.locked_file-module.html
+++ b/docs/epy/oauth2client.locked_file-module.html
@@ -195,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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file-pysrc.html b/docs/epy/oauth2client.locked_file-pysrc.html
index 7bbba4c..0cee69b 100644
--- a/docs/epy/oauth2client.locked_file-pysrc.html
+++ b/docs/epy/oauth2client.locked_file-pysrc.html
@@ -78,12 +78,13 @@
<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.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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
+<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.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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,Variable oauth2client.util.logger=oauth2client.util-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -182,7 +183,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -257,7 +259,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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="L189"></a><tt class="py-lineno">189</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="L190"></a><tt class="py-lineno">190</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="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">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
@@ -342,7 +345,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-12', '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>
+oauth2client.multistore_file.logger
+oauth2client.util.logger" class="py-name" href="#" onclick="return doclink('link-12', '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="L269"></a><tt class="py-lineno">269</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="L270"></a><tt class="py-lineno">270</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="L271"></a><tt class="py-lineno">271</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>
@@ -459,7 +463,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:32 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html b/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
index 797047c..b37529a 100644
--- a/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
+++ b/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
@@ -166,7 +166,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file.LockedFile-class.html b/docs/epy/oauth2client.locked_file.LockedFile-class.html
index 6ca40de..5828f59 100644
--- a/docs/epy/oauth2client.locked_file.LockedFile-class.html
+++ b/docs/epy/oauth2client.locked_file.LockedFile-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 Mon Jul 23 15:50:03 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file._FcntlOpener-class.html b/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
index d95aff0..6cf0b4f 100644
--- a/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
+++ b/docs/epy/oauth2client.locked_file._FcntlOpener-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 Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:30 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file._Opener-class.html b/docs/epy/oauth2client.locked_file._Opener-class.html
index 3f7a0c6..80b16a8 100644
--- a/docs/epy/oauth2client.locked_file._Opener-class.html
+++ b/docs/epy/oauth2client.locked_file._Opener-class.html
@@ -368,7 +368,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file._PosixOpener-class.html b/docs/epy/oauth2client.locked_file._PosixOpener-class.html
index 8968db8..0dbb5bb 100644
--- a/docs/epy/oauth2client.locked_file._PosixOpener-class.html
+++ b/docs/epy/oauth2client.locked_file._PosixOpener-class.html
@@ -293,7 +293,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file-module.html b/docs/epy/oauth2client.multistore_file-module.html
index 5dc2c7b..97858d4 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 e7e3a6d..0a43fd1 100644
--- a/docs/epy/oauth2client.multistore_file-pysrc.html
+++ b/docs/epy/oauth2client.multistore_file-pysrc.html
@@ -93,18 +93,20 @@
<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
+<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,Class oauth2client.keyring_storage.Storage=oauth2client.keyring_storage.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>
+oauth2client.file.Storage
+oauth2client.keyring_storage.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="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-7" class="py-name" targets="Variable apiclient.discovery.logger=apiclient.discovery-module.html#logger,Variable oauth2client.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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
+<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.appengine.logger=oauth2client.appengine-module.html#logger,Variable oauth2client.client.logger=oauth2client.client-module.html#logger,Variable oauth2client.crypt.logger=oauth2client.crypt-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,Variable oauth2client.util.logger=oauth2client.util-module.html#logger"><a title="apiclient.discovery.logger
oauth2client.appengine.logger
oauth2client.client.logger
oauth2client.crypt.logger
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>
+oauth2client.multistore_file.logger
+oauth2client.util.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-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>
@@ -268,7 +270,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -279,7 +282,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -349,7 +353,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -362,7 +367,8 @@
oauth2client.client.logger
oauth2client.crypt.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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -386,7 +392,8 @@
oauth2client.client.logger
oauth2client.crypt.logger
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>
+oauth2client.multistore_file.logger
+oauth2client.util.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>
@@ -526,7 +533,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 a1c660c..ab4832a 100644
--- a/docs/epy/oauth2client.multistore_file.Error-class.html
+++ b/docs/epy/oauth2client.multistore_file.Error-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 c84e998..7d58a3a 100644
--- a/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
+++ b/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
@@ -167,7 +167,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 4340c57..8180c07 100644
--- a/docs/epy/oauth2client.multistore_file._MultiStore-class.html
+++ b/docs/epy/oauth2client.multistore_file._MultiStore-class.html
@@ -756,7 +756,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 d397cab..032d564 100644
--- a/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
+++ b/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
@@ -461,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 Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 ccfa22d..8507a9a 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 Mon Jul 23 15:49:56 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:25 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 11f6c65..7390589 100644
--- a/docs/epy/oauth2client.tools-pysrc.html
+++ b/docs/epy/oauth2client.tools-pysrc.html
@@ -93,9 +93,11 @@
<a name="L38"></a><tt class="py-lineno"> 38</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="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>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable apiclient.model.FLAGS=apiclient.model-module.html#FLAGS,Variable oauth2client.tools.FLAGS=oauth2client.tools-module.html#FLAGS"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-4', 'FLAGS', 'link-4');">FLAGS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gflags</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-5', 'FLAGS', 'link-4');">FLAGS</a></tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable apiclient.model.FLAGS=apiclient.model-module.html#FLAGS,Variable oauth2client.tools.FLAGS=oauth2client.tools-module.html#FLAGS,Variable oauth2client.util.FLAGS=oauth2client.util-module.html#FLAGS"><a title="apiclient.model.FLAGS
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-4', 'FLAGS', 'link-4');">FLAGS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">gflags</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="apiclient.model.FLAGS
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-5', 'FLAGS', 'link-4');">FLAGS</a></tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-name">gflags</tt><tt class="py-op">.</tt><tt class="py-name">DEFINE_boolean</tt><tt class="py-op">(</tt><tt class="py-string">'auth_local_webserver'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-string">'Run a local web server to handle redirects during '</tt> </tt>
@@ -161,15 +163,18 @@
<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> Credentials, the obtained credential.</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">if</tt> <tt id="link-8" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-8', '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>
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-8', '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="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">success</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">port_number</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">port</tt> <tt class="py-keyword">in</tt> <tt id="link-9" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-9', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_host_port</tt><tt class="py-op">:</tt> </tt>
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-9', 'FLAGS', 'link-4');">FLAGS</a></tt><tt class="py-op">.</tt><tt class="py-name">auth_host_port</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">port_number</tt> <tt class="py-op">=</tt> <tt class="py-name">port</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-keyword">try</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">httpd</tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name" targets="Class oauth2client.tools.ClientRedirectServer=oauth2client.tools.ClientRedirectServer-class.html"><a title="oauth2client.tools.ClientRedirectServer" class="py-name" href="#" onclick="return doclink('link-10', 'ClientRedirectServer', 'link-10');">ClientRedirectServer</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="apiclient.model.FLAGS
-oauth2client.tools.FLAGS" class="py-name" href="#" onclick="return doclink('link-11', '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</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+oauth2client.tools.FLAGS
+oauth2client.util.FLAGS" class="py-name" href="#" onclick="return doclink('link-11', '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</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt id="link-12" class="py-name" targets="Class oauth2client.tools.ClientRedirectHandler=oauth2client.tools.ClientRedirectHandler-class.html"><a title="oauth2client.tools.ClientRedirectHandler" class="py-name" href="#" onclick="return doclink('link-12', 'ClientRedirectHandler', 'link-12');">ClientRedirectHandler</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-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
@@ -177,7 +182,8 @@
<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">success</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
<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>
+oauth2client.tools.FLAGS
+oauth2client.util.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 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>
@@ -188,15 +194,18 @@
<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>
+oauth2client.tools.FLAGS
+oauth2client.util.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="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>
+oauth2client.tools.FLAGS
+oauth2client.util.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="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>
+oauth2client.tools.FLAGS
+oauth2client.util.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="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>
@@ -215,7 +224,8 @@
<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>
+oauth2client.tools.FLAGS
+oauth2client.util.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="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>
@@ -268,7 +278,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 32db6c4..dbcce2f 100644
--- a/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
+++ b/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
@@ -310,7 +310,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 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 5e8906d..45aa448 100644
--- a/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
+++ b/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
@@ -182,7 +182,7 @@
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
- Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
+ Generated by Epydoc 3.0.1 on Fri Aug 3 07:38:31 2012
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.util-module.html b/docs/epy/oauth2client.util-module.html
new file mode 100644
index 0000000..85a2a64
--- /dev/null
+++ b/docs/epy/oauth2client.util-module.html
@@ -0,0 +1,288 @@
+<?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.util</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 util
+ </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.util-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module util</h1><p class="nomargin-top"></p>
+<pre class="literalblock">
+Common utility library.
+
+</pre>
+
+<hr />
+<div class="fields"> <dl><dt>Authors:</dt>
+ <dd>
+ rafek@google.com (Rafe Kaplan),
+ guido@google.com (Guido van Rossum)
+ </dd>
+ </dl>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ 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.util-module.html#positional" class="summary-sig-name">positional</a>(<span class="summary-sig-arg">max_positional_args</span>)</span><br />
+ A decorator to declare that only the first N arguments my be positional.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </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 class="private">
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="FLAGS"></a><span class="summary-name">FLAGS</span> = <code title="gflags.FLAGS">gflags.FLAGS</code>
+ </td>
+ </tr>
+<tr class="private">
+ <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>
+<tr class="private">
+ <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.Logger instance at 0x40e8d88>"><logging.Logger instance at 0x40e8d88></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></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">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="positional"></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">positional</span>(<span class="sig-arg">max_positional_args</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <pre class="literalblock">
+A decorator to declare that only the first N arguments my be positional.
+
+This decorator makes it easy to support Python 3 style key-word only
+parameters. For example, in Python 3 it is possible to write:
+
+ def fn(pos1, *, kwonly1=None, kwonly1=None):
+ ...
+
+All named parameters after * must be a keyword:
+
+ fn(10, 'kw1', 'kw2') # Raises exception.
+ fn(10, kwonly1='kw1') # Ok.
+
+Example:
+ To define a function like above, do:
+
+ @positional(1)
+ def fn(pos1, kwonly1=None, kwonly2=None):
+ ...
+
+ If no default value is provided to a keyword argument, it becomes a required
+ keyword argument:
+
+ @positional(0)
+ def fn(required_kw):
+ ...
+
+ This must be called with the keyword parameter:
+
+ fn() # Raises exception.
+ fn(10) # Raises exception.
+ fn(required_kw=10) # Ok.
+
+ When defining instance or class methods always remember to account for
+ 'self' and 'cls':
+
+ class MyClass(object):
+
+ @positional(2)
+ def my_method(self, pos1, kwonly1=None):
+ ...
+
+ @classmethod
+ @positional(2)
+ def my_method(cls, pos1, kwonly1=None):
+ ...
+
+The positional decorator behavior is controlled by the
+--positional_parameters_enforcement flag. The flag may be set to 'EXCEPTION',
+'WARNING' or 'IGNORE' to raise an exception, log a warning, or do nothing,
+respectively, if a declaration is violated.
+
+Args:
+ max_positional_arguments: Maximum number of positional arguments. All
+ parameters after the this index must be keyword only.
+
+Returns:
+ A decorator that prevents using arguments after max_positional_args from
+ being used as positional parameters.
+
+Raises:
+ TypeError if a key-word only argument is provided as a positional parameter,
+ but only if the --positional_parameters_enforcement flag is set to
+ 'EXCEPTION'.
+
+</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 Fri Aug 3 07:38:25 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/redirect.html b/docs/epy/redirect.html
index 39fa564..b625ebb 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.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", "apiclient.http.MediaDownloadProgress-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.MediaIoBaseDownload-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.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.MediaModel-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", "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", "apiclient.http.MediaDownloadProgress-c", "oauth2client.appengine.OAuth2Handler-c", "oauth2client.keyring_storage.Storage-c", "apiclient.model.ProtocolBufferModel-c", "oauth2client.appengine.FlowProperty-c", "oauth2client.crypt.AppIdentityError-c", "oauth2client.locked_file.LockedFile-c", "apiclient.http.MediaInMemoryUpload-c", "apiclient.http.MediaIoBaseDownload-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.keyring_storage-m", "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.MediaModel-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", "apiclient.contrib-m", "oauth2client.file-m", "oauth2client.util-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-everything.html b/docs/epy/toc-everything.html
index b4f890c..f4ddd0d 100644
--- a/docs/epy/toc-everything.html
+++ b/docs/epy/toc-everything.html
@@ -83,7 +83,8 @@
>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.locked_file.AlreadyLockedException-class.html"
+ >oauth2client.file.Storage</a><br /> <a target="mainFrame" href="oauth2client.keyring_storage.Storage-class.html"
+ >oauth2client.keyring_storage.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"
@@ -184,7 +185,8 @@
>oauth2client.crypt.make_signed_jwt</a><br /> <a target="mainFrame" href="oauth2client.crypt-module.html#verify_signed_jwt_with_certs"
>oauth2client.crypt.verify_signed_jwt_with_certs</a><br /> <a target="mainFrame" href="oauth2client.multistore_file-module.html#get_credential_storage"
>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>
+ >oauth2client.tools.run</a><br /> <a target="mainFrame" href="oauth2client.util-module.html#positional"
+ >oauth2client.util.positional</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__"
@@ -252,7 +254,8 @@
>oauth2client.crypt.__package__</a><br /> <a target="mainFrame" href="oauth2client.crypt-module.html#logger"
>oauth2client.crypt.logger</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 /> <div class="private">
+ >oauth2client.file.__package__</a><br /> <a target="mainFrame" href="oauth2client.keyring_storage-module.html#__package__"
+ >oauth2client.keyring_storage.__package__</a><br /> <div class="private">
<a target="mainFrame" href="oauth2client.locked_file-module.html#_Win32Opener"
>oauth2client.locked_file._Win32Opener</a><br /> </div>
<a target="mainFrame" href="oauth2client.locked_file-module.html#__package__"
@@ -271,6 +274,15 @@
<div class="private">
<a target="mainFrame" href="oauth2client.tools-module.html#__package__"
>oauth2client.tools.__package__</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.util-module.html#FLAGS"
+ >oauth2client.util.FLAGS</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.util-module.html#__package__"
+ >oauth2client.util.__package__</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.util-module.html#logger"
+ >oauth2client.util.logger</a><br /> </div>
<hr />
<span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide private</a>]</span>
diff --git a/docs/epy/toc-oauth2client.keyring_storage-module.html b/docs/epy/toc-oauth2client.keyring_storage-module.html
new file mode 100644
index 0000000..fab1765
--- /dev/null
+++ b/docs/epy/toc-oauth2client.keyring_storage-module.html
@@ -0,0 +1,33 @@
+<?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>keyring_storage</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 keyring_storage</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="oauth2client.keyring_storage.Storage-class.html"
+ >Storage</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="oauth2client.keyring_storage-module.html#__package__"
+ >__package__</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-oauth2client.util-module.html b/docs/epy/toc-oauth2client.util-module.html
new file mode 100644
index 0000000..28465a3
--- /dev/null
+++ b/docs/epy/toc-oauth2client.util-module.html
@@ -0,0 +1,41 @@
+<?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>util</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 util</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="oauth2client.util-module.html#positional"
+ >positional</a><br /> <h2 class="toc">Variables</h2>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.util-module.html#FLAGS"
+ >FLAGS</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.util-module.html#__package__"
+ >__package__</a><br /> </div>
+ <div class="private">
+ <a target="mainFrame" href="oauth2client.util-module.html#logger"
+ >logger</a><br /> </div>
+<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 ac3f76d..cf8d474 100644
--- a/docs/epy/toc.html
+++ b/docs/epy/toc.html
@@ -34,10 +34,12 @@
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.locked_file-module.html"
+ onclick="setFrame('toc-oauth2client.file-module.html','oauth2client.file-module.html');" >oauth2client.file</a><br /> <a target="moduleFrame" href="toc-oauth2client.keyring_storage-module.html"
+ onclick="setFrame('toc-oauth2client.keyring_storage-module.html','oauth2client.keyring_storage-module.html');" >oauth2client.keyring_storage</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 />
+ onclick="setFrame('toc-oauth2client.tools-module.html','oauth2client.tools-module.html');" >oauth2client.tools</a><br /> <a target="moduleFrame" href="toc-oauth2client.util-module.html"
+ onclick="setFrame('toc-oauth2client.util-module.html','oauth2client.util-module.html');" >oauth2client.util</a><br /><hr />
<span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide private</a>]</span>