1.0beta3 release
diff --git a/docs/oauth2client.appengine.html b/docs/oauth2client.appengine.html
index e3cba8b..1607892 100644
--- a/docs/oauth2client.appengine.html
+++ b/docs/oauth2client.appengine.html
@@ -8,7 +8,7 @@
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.appengine</strong></big></big></font></td
><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/google-api-python-client/oauth2client/appengine.py">/home/jcgregorio/projects/google-api-python-client/oauth2client/appengine.py</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/local/google/home/jcgregorio/projects/apiclient/oauth2client/appengine.py">/usr/local/google/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>
@@ -23,13 +23,12 @@
<a href="base64.html">base64</a><br>
<a href="google.appengine.ext.db.html">google.appengine.ext.db</a><br>
</td><td width="25%" valign=top><a href="httplib2.html">httplib2</a><br>
-<a href="logging.html">logging</a><br>
<a href="google.appengine.api.memcache.html">google.appengine.api.memcache</a><br>
-</td><td width="25%" valign=top><a href="pickle.html">pickle</a><br>
-<a href="simplejson.html">simplejson</a><br>
+<a href="pickle.html">pickle</a><br>
+</td><td width="25%" valign=top><a href="simplejson.html">simplejson</a><br>
<a href="time.html">time</a><br>
-</td><td width="25%" valign=top><a href="google.appengine.api.users.html">google.appengine.api.users</a><br>
-<a href="google.appengine.ext.webapp.html">google.appengine.ext.webapp</a><br>
+<a href="google.appengine.api.users.html">google.appengine.api.users</a><br>
+</td><td width="25%" valign=top><a href="google.appengine.ext.webapp.html">google.appengine.ext.webapp</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
@@ -122,6 +121,10 @@
defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt></dd></dl>
<hr>
+Class methods defined here:<br>
+<dl><dt><a name="AppAssertionCredentials-from_json"><strong>from_json</strong></a>(cls, json)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt></dl>
+
+<hr>
Methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">oauth2client.client.OAuth2Credentials</a>:<br>
<dl><dt><a name="AppAssertionCredentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim the state down to something that can be pickled.</tt></dd></dl>
@@ -141,28 +144,43 @@
h = httplib2.Http()<br>
h = credentials.<a href="#AppAssertionCredentials-authorize">authorize</a>(h)<br>
<br>
-You can't create a new OAuth<br>
-subclass of httplib2.Authenication because<br>
-it never gets passed the absolute URI, which is<br>
-needed for signing. So instead we have to overload<br>
-'request' with a closure that adds in the<br>
-Authorization header and then calls the original version<br>
-of 'request()'.</tt></dd></dl>
+You can't create a new OAuth subclass of httplib2.Authenication<br>
+because it never gets passed the absolute URI, which is needed for<br>
+signing. So instead we have to overload 'request' with a closure<br>
+that adds in the Authorization header and then calls the original<br>
+version of 'request()'.</tt></dd></dl>
-<dl><dt><a name="AppAssertionCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set the storage for the credential.<br>
+<dl><dt><a name="AppAssertionCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set the <a href="oauth2client.client.html#Storage">Storage</a> for the credential.<br>
<br>
Args:<br>
- store: callable, a callable that when passed a Credential<br>
- will store the credential back to where it came from.<br>
+ store: <a href="oauth2client.client.html#Storage">Storage</a>, an implementation of Stroage <a href="__builtin__.html#object">object</a>.<br>
This is needed to store the latest access_token if it<br>
- has expired and been refreshed.</tt></dd></dl>
+ has expired and been refreshed. This implementation uses<br>
+ locking to check for updates before updating the<br>
+ access_token.</tt></dd></dl>
+
+<dl><dt><a name="AppAssertionCredentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
<hr>
Data descriptors inherited from <a href="oauth2client.client.html#OAuth2Credentials">oauth2client.client.OAuth2Credentials</a>:<br>
-<dl><dt><strong>invalid</strong></dt>
-<dd><tt>True if the credentials are invalid, such as being revoked.</tt></dd>
+<dl><dt><strong>access_token_expired</strong></dt>
+<dd><tt>True if the credential is expired or invalid.<br>
+ <br>
+If the token_expiry isn't set, we assume the token doesn't expire.</tt></dd>
</dl>
<hr>
+Class methods inherited from <a href="oauth2client.client.html#Credentials">oauth2client.client.Credentials</a>:<br>
+<dl><dt><a name="AppAssertionCredentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility class method to instantiate a Credentials subclass from a JSON<br>
+representation produced by <a href="#AppAssertionCredentials-to_json">to_json</a>().<br>
+ <br>
+Args:<br>
+ s: string, JSON from <a href="#AppAssertionCredentials-to_json">to_json</a>().<br>
+ <br>
+Returns:<br>
+ An instance of the subclass of Credentials that was serialized with<br>
+ <a href="#AppAssertionCredentials-to_json">to_json</a>().</tt></dd></dl>
+
+<hr>
Data descriptors inherited from <a href="oauth2client.client.html#Credentials">oauth2client.client.Credentials</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>
@@ -170,6 +188,10 @@
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list of weak references to the object (if defined)</tt></dd>
</dl>
+<hr>
+Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">oauth2client.client.Credentials</a>:<br>
+<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
+
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
@@ -515,8 +537,11 @@
Data and other attributes defined here:<br>
<dl><dt><strong>data_type</strong> = <class 'oauth2client.client.Credentials'><dd><tt>Base class for all Credentials objects.<br>
<br>
-Subclasses must define an authorize() method<br>
-that applies the credentials to an HTTP transport.</tt></dl>
+Subclasses must define an authorize() method that applies the credentials to<br>
+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>
<hr>
Methods inherited from <a href="google.appengine.ext.db.html#Property">google.appengine.ext.db.Property</a>:<br>
@@ -903,6 +928,31 @@
credentials: Credentials, the credentials to store.</tt></dd></dl>
<hr>
+Methods inherited from <a href="oauth2client.client.html#Storage">oauth2client.client.Storage</a>:<br>
+<dl><dt><a name="StorageByKeyName-acquire_lock"><strong>acquire_lock</strong></a>(self)</dt><dd><tt>Acquires any lock necessary to access this <a href="oauth2client.client.html#Storage">Storage</a>.<br>
+ <br>
+This lock is not reentrant.</tt></dd></dl>
+
+<dl><dt><a name="StorageByKeyName-locked_get"><strong>locked_get</strong></a>(self)</dt><dd><tt>Retrieve credential.<br>
+ <br>
+The <a href="oauth2client.client.html#Storage">Storage</a> lock must be held when this is called.<br>
+ <br>
+Returns:<br>
+ oauth2client.client.Credentials</tt></dd></dl>
+
+<dl><dt><a name="StorageByKeyName-locked_put"><strong>locked_put</strong></a>(self, credentials)</dt><dd><tt>Write a credential.<br>
+ <br>
+The <a href="oauth2client.client.html#Storage">Storage</a> lock must be held when this is called.<br>
+ <br>
+Args:<br>
+ credentials: Credentials, the credentials to store.</tt></dd></dl>
+
+<dl><dt><a name="StorageByKeyName-release_lock"><strong>release_lock</strong></a>(self)</dt><dd><tt>Release the <a href="oauth2client.client.html#Storage">Storage</a> lock.<br>
+ <br>
+Trying to release a lock that isn't held will result in a<br>
+RuntimeError.</tt></dd></dl>
+
+<hr>
Data descriptors inherited from <a href="oauth2client.client.html#Storage">oauth2client.client.Storage</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary for instance variables (if defined)</tt></dd>