Updated docs
diff --git a/docs/oauth2client.appengine.html b/docs/oauth2client.appengine.html
index 72d4be9..61f90f7 100644
--- a/docs/oauth2client.appengine.html
+++ b/docs/oauth2client.appengine.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.appengine</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/local/google/home/jcgregorio/projects/apiclient-release/oauth2client/appengine.py">/usr/local/google/home/jcgregorio/projects/apiclient-release/oauth2client/appengine.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/apiclient/oauth2client/appengine.py">/home/jcgregorio/projects/apiclient/oauth2client/appengine.py</a></font></td></tr></table>
<p><tt>Utilities for Google App Engine<br>
<br>
Utilities for making it easier to use OAuth 2.0 on Google App Engine.</tt></p>
@@ -19,7 +19,7 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="google.appengine.api.app_identity.app_identity.html">google.appengine.api.app_identity.app_identity</a><br>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="google.appengine.api.app_identity.html">google.appengine.api.app_identity</a><br>
<a href="base64.html">base64</a><br>
<a href="oauth2client.clientsecrets.html">oauth2client.clientsecrets</a><br>
</td><td width="25%" valign=top><a href="google.appengine.ext.db.html">google.appengine.ext.db</a><br>
@@ -69,7 +69,7 @@
</font></dt><dt><font face="helvetica, arial"><a href="oauth2client.appengine.html#FlowProperty">FlowProperty</a>
</font></dt></dl>
</dd>
-<dt><font face="helvetica, arial"><a href="google.appengine.ext.webapp.html#RequestHandler">google.appengine.ext.webapp.RequestHandler</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
+<dt><font face="helvetica, arial"><a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">google.appengine.ext.webapp._webapp25.RequestHandler</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="oauth2client.appengine.html#OAuth2Handler">OAuth2Handler</a>
@@ -100,11 +100,7 @@
This <a href="__builtin__.html#object">object</a> will allow an App Engine application to identify itself to Google<br>
and other OAuth 2.0 servers that can verify assertions. It can be used for<br>
the purpose of accessing data stored under an account assigned to the App<br>
-Engine application itself. The algorithm used for generating the assertion is<br>
-the Signed JSON Web Token (JWT) algorithm. Additional details can be found at<br>
-the following link:<br>
- <br>
-<a href="http://self-issued.info/docs/draft-jones-json-web-token.html">http://self-issued.info/docs/draft-jones-json-web-token.html</a><br>
+Engine application itself.<br>
<br>
This credential does not require a flow to instantiate because it represents<br>
a two legged flow, and therefore has all of the required information to<br>
@@ -119,17 +115,10 @@
</dl>
<hr>
Methods defined here:<br>
-<dl><dt><a name="AppAssertionCredentials-__init__"><strong>__init__</strong></a>(self, scope, audience<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, assertion_type<font color="#909090">='http://oauth.net/grant_type/jwt/1.0/bearer'</font>, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **kwargs)</dt><dd><tt>Constructor for <a href="#AppAssertionCredentials">AppAssertionCredentials</a><br>
+<dl><dt><a name="AppAssertionCredentials-__init__"><strong>__init__</strong></a>(self, scope, **kwargs)</dt><dd><tt>Constructor for <a href="#AppAssertionCredentials">AppAssertionCredentials</a><br>
<br>
Args:<br>
- scope: string, scope of the credentials being requested.<br>
- audience: string, The audience, or verifier of the assertion. For<br>
- convenience defaults to Google's audience.<br>
- assertion_type: string, Type name that will identify the format of the<br>
- assertion string. For convience, defaults to the JSON Web Token (JWT)<br>
- assertion type string.<br>
- token_uri: string, URI for token endpoint. For convenience<br>
- defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt></dd></dl>
+ scope: string or list of strings, scope(s) of the credentials being requested.</tt></dd></dl>
<hr>
Class methods defined here:<br>
@@ -567,7 +556,7 @@
an HTTP transport.<br>
<br>
Subclasses must also specify a classmethod named 'from_json' that takes a JSON<br>
-string as input and returns an instaniated Crentials <a href="__builtin__.html#object">object</a>.</tt></dl>
+string as input and returns an instaniated Credentials <a href="__builtin__.html#object">object</a>.</tt></dl>
<hr>
Methods inherited from <a href="google.appengine.ext.db.html#Property">google.appengine.ext.db.Property</a>:<br>
@@ -624,6 +613,20 @@
True if this value is considered empty in the context of this <a href="google.appengine.ext.db.html#Property">Property</a><br>
type, otherwise False.</tt></dd></dl>
+<dl><dt><a name="CredentialsProperty-get_updated_value_for_datastore"><strong>get_updated_value_for_datastore</strong></a>(self, model_instance)</dt><dd><tt>Determine new value for auto-updated property.<br>
+ <br>
+Some properies (e.g. DateTimeProperty, UserProperty) optionally update their<br>
+value on every put(). This call must return the new desired value for such<br>
+properties. For all other properties, this call must return<br>
+AUTO_UPDATE_UNCHANGED.<br>
+ <br>
+Args:<br>
+ model_instance: Instance to get new value for.<br>
+ <br>
+Returns:<br>
+ Datastore representation of the new model value in a form that is<br>
+ appropriate for storing in the datastore, or AUTO_UPDATE_UNCHANGED.</tt></dd></dl>
+
<hr>
Data descriptors inherited from <a href="google.appengine.ext.db.html#Property">google.appengine.ext.db.Property</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
@@ -709,6 +712,20 @@
Returns:<br>
Default value as provided by <a href="#FlowProperty-__init__">__init__</a>(default).</tt></dd></dl>
+<dl><dt><a name="FlowProperty-get_updated_value_for_datastore"><strong>get_updated_value_for_datastore</strong></a>(self, model_instance)</dt><dd><tt>Determine new value for auto-updated property.<br>
+ <br>
+Some properies (e.g. DateTimeProperty, UserProperty) optionally update their<br>
+value on every put(). This call must return the new desired value for such<br>
+properties. For all other properties, this call must return<br>
+AUTO_UPDATE_UNCHANGED.<br>
+ <br>
+Args:<br>
+ model_instance: Instance to get new value for.<br>
+ <br>
+Returns:<br>
+ Datastore representation of the new model value in a form that is<br>
+ appropriate for storing in the datastore, or AUTO_UPDATE_UNCHANGED.</tt></dd></dl>
+
<hr>
Data descriptors inherited from <a href="google.appengine.ext.db.html#Property">google.appengine.ext.db.Property</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
@@ -791,7 +808,7 @@
<td colspan=2><tt>Utility for making OAuth 2.0 easier.<br>
<br>
Instantiate and then use with oauth_required or oauth_aware<br>
-as decorators on webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a> methods.<br>
+as decorators on webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a> methods.<br>
<br>
Example:<br>
<br>
@@ -801,7 +818,7 @@
scope='https://www.googleapis.com/auth/plus')<br>
<br>
<br>
- class MainHandler(webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a>):<br>
+ class MainHandler(webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a>):<br>
<br>
@decorator.oauth_required<br>
def get(self):<br>
@@ -830,12 +847,12 @@
<dl><dt><a name="OAuth2Decorator-authorize_url"><strong>authorize_url</strong></a>(self)</dt><dd><tt>Returns the URL to start the OAuth dance.<br>
<br>
-Must only be called from with a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a> subclassed method<br>
+Must only be called from with a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a> subclassed method<br>
that had been decorated with either @oauth_required or @oauth_aware.</tt></dd></dl>
<dl><dt><a name="OAuth2Decorator-has_credentials"><strong>has_credentials</strong></a>(self)</dt><dd><tt>True if for the logged in user there are valid access Credentials.<br>
<br>
-Must only be called from with a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a> subclassed method<br>
+Must only be called from with a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a> subclassed method<br>
that had been decorated with either @oauth_required or @oauth_aware.</tt></dd></dl>
<dl><dt><a name="OAuth2Decorator-http"><strong>http</strong></a>(self)</dt><dd><tt>Returns an authorized http instance.<br>
@@ -853,7 +870,7 @@
and <a href="#OAuth2Decorator-authorize_url">authorize_url</a>() methods can be called.<br>
<br>
Args:<br>
- method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a><br>
+ method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a><br>
instance.</tt></dd></dl>
<dl><dt><a name="OAuth2Decorator-oauth_required"><strong>oauth_required</strong></a>(self, method)</dt><dd><tt>Decorator that starts the OAuth 2.0 dance.<br>
@@ -862,7 +879,7 @@
granted access for this application.<br>
<br>
Args:<br>
- method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a><br>
+ method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a><br>
instance.</tt></dd></dl>
<hr>
@@ -892,7 +909,7 @@
scope='https://www.googleapis.com/auth/plus')<br>
<br>
<br>
- class MainHandler(webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a>):<br>
+ class MainHandler(webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a>):<br>
<br>
@decorator.oauth_required<br>
def get(self):<br>
@@ -911,7 +928,8 @@
<br>
Args:<br>
filename: string, File name of client secrets.<br>
- scope: string, Space separated list of scopes.<br>
+ scope: string or list of strings, scope(s) of the credentials being<br>
+ requested.<br>
message: string, A friendly string to display to the user if the<br>
clientsecrets file is missing or invalid. The message may contain HTML and<br>
will be presented on the web interface for any method that uses the<br>
@@ -921,12 +939,12 @@
Methods inherited from <a href="oauth2client.appengine.html#OAuth2Decorator">OAuth2Decorator</a>:<br>
<dl><dt><a name="OAuth2DecoratorFromClientSecrets-authorize_url"><strong>authorize_url</strong></a>(self)</dt><dd><tt>Returns the URL to start the OAuth dance.<br>
<br>
-Must only be called from with a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a> subclassed method<br>
+Must only be called from with a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a> subclassed method<br>
that had been decorated with either @oauth_required or @oauth_aware.</tt></dd></dl>
<dl><dt><a name="OAuth2DecoratorFromClientSecrets-has_credentials"><strong>has_credentials</strong></a>(self)</dt><dd><tt>True if for the logged in user there are valid access Credentials.<br>
<br>
-Must only be called from with a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a> subclassed method<br>
+Must only be called from with a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a> subclassed method<br>
that had been decorated with either @oauth_required or @oauth_aware.</tt></dd></dl>
<dl><dt><a name="OAuth2DecoratorFromClientSecrets-http"><strong>http</strong></a>(self)</dt><dd><tt>Returns an authorized http instance.<br>
@@ -944,7 +962,7 @@
and <a href="#OAuth2DecoratorFromClientSecrets-authorize_url">authorize_url</a>() methods can be called.<br>
<br>
Args:<br>
- method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a><br>
+ method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a><br>
instance.</tt></dd></dl>
<dl><dt><a name="OAuth2DecoratorFromClientSecrets-oauth_required"><strong>oauth_required</strong></a>(self, method)</dt><dd><tt>Decorator that starts the OAuth 2.0 dance.<br>
@@ -953,7 +971,7 @@
granted access for this application.<br>
<br>
Args:<br>
- method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a><br>
+ method: callable, to be decorated method of a webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a><br>
instance.</tt></dd></dl>
<hr>
@@ -968,14 +986,14 @@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="OAuth2Handler">class <strong>OAuth2Handler</strong></a>(<a href="google.appengine.ext.webapp.html#RequestHandler">google.appengine.ext.webapp.RequestHandler</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="OAuth2Handler">class <strong>OAuth2Handler</strong></a>(<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">google.appengine.ext.webapp._webapp25.RequestHandler</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Handler for the redirect_uri of the OAuth 2.0 dance.<br> </tt></td></tr>
<tr><td> </td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="oauth2client.appengine.html#OAuth2Handler">OAuth2Handler</a></dd>
-<dd><a href="google.appengine.ext.webapp.html#RequestHandler">google.appengine.ext.webapp.RequestHandler</a></dd>
+<dd><a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">google.appengine.ext.webapp._webapp25.RequestHandler</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
@@ -983,7 +1001,7 @@
<dl><dt><a name="OAuth2Handler-get"><strong>get</strong></a> = check_login(self, *args)</dt></dl>
<hr>
-Methods inherited from <a href="google.appengine.ext.webapp.html#RequestHandler">google.appengine.ext.webapp.RequestHandler</a>:<br>
+Methods inherited from <a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">google.appengine.ext.webapp._webapp25.RequestHandler</a>:<br>
<dl><dt><a name="OAuth2Handler-delete"><strong>delete</strong></a>(self, *args)</dt><dd><tt>Handler method for DELETE requests.</tt></dd></dl>
<dl><dt><a name="OAuth2Handler-error"><strong>error</strong></a>(self, code)</dt><dd><tt>Clears the response output stream and sets the given HTTP error code.<br>
@@ -1019,7 +1037,7 @@
<dl><dt><a name="OAuth2Handler-trace"><strong>trace</strong></a>(self, *args)</dt><dd><tt>Handler method for TRACE requests.</tt></dd></dl>
<hr>
-Class methods inherited from <a href="google.appengine.ext.webapp.html#RequestHandler">google.appengine.ext.webapp.RequestHandler</a>:<br>
+Class methods inherited from <a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">google.appengine.ext.webapp._webapp25.RequestHandler</a>:<br>
<dl><dt><a name="OAuth2Handler-get_url"><strong>get_url</strong></a>(cls, *args, **kargs)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Returns the url for the given handler.<br>
<br>
The default implementation uses the patterns passed to the active<br>
@@ -1057,7 +1075,7 @@
create a set of post handlers that will do simple text transformations<br>
you can write:<br>
<br>
- class ChangeTextHandler(webapp.<a href="google.appengine.ext.webapp.html#RequestHandler">RequestHandler</a>):<br>
+ class ChangeTextHandler(webapp.<a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">RequestHandler</a>):<br>
<br>
def <a href="#OAuth2Handler-__init__">__init__</a>(self, transform):<br>
self.<strong>transform</strong> = transform<br>
@@ -1077,7 +1095,7 @@
Text POSTed to /to_upper will be upper cased.</tt></dd></dl>
<hr>
-Data descriptors inherited from <a href="google.appengine.ext.webapp.html#RequestHandler">google.appengine.ext.webapp.RequestHandler</a>:<br>
+Data descriptors inherited from <a href="google.appengine.ext.webapp._webapp25.html#RequestHandler">google.appengine.ext.webapp._webapp25.RequestHandler</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>
</dl>
@@ -1179,7 +1197,8 @@
<br>
Args:<br>
filename: string, File name of client secrets.<br>
- scope: string, Space separated list of scopes.<br>
+ scope: string or list of strings, scope(s) of the credentials being<br>
+ requested.<br>
message: string, A friendly string to display to the user if the<br>
clientsecrets file is missing or invalid. The message may contain HTML and<br>
will be presented on the web interface for any method that uses the<br>
@@ -1195,7 +1214,7 @@
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
<td width="100%"><strong>OAUTH2CLIENT_NAMESPACE</strong> = 'oauth2client#ns'<br>
<strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'<br>
-<strong>application</strong> = <google.appengine.ext.webapp.WSGIApplication object></td></tr></table><p>
+<strong>application</strong> = <google.appengine.ext.webapp._webapp25.WSGIApplication object></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom> <br>