blob: dc94786db7b8d66b30f09fcea5a4b16f17681385 [file] [log] [blame]
Joe Gregorio30dfdc32010-12-09 16:34:22 -05001
2<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3<html><head><title>Python: module apiclient.oauth</title>
4</head><body bgcolor="#f0f0f8">
5
6<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
7<tr bgcolor="#7799ee">
8<td valign=bottom>&nbsp;<br>
9<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="apiclient.html"><font color="#ffffff">apiclient</font></a>.oauth</strong></big></big></font></td
10><td align=right valign=bottom
Joe Gregorio351b1492011-05-08 23:32:46 -070011><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/google-api-python-client/apiclient/oauth.py">/home/jcgregorio/projects/google-api-python-client/apiclient/oauth.py</a></font></td></tr></table>
Joe Gregorio30dfdc32010-12-09 16:34:22 -050012 <p><tt>Utilities&nbsp;for&nbsp;OAuth.<br>
13&nbsp;<br>
14Utilities&nbsp;for&nbsp;making&nbsp;it&nbsp;easier&nbsp;to&nbsp;work&nbsp;with&nbsp;OAuth.</tt></p>
15<p>
16<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
17<tr bgcolor="#aa55cc">
18<td colspan=3 valign=bottom>&nbsp;<br>
19<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
20
21<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
22<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="copy.html">copy</a><br>
Joe Gregorio3b79fa82011-02-17 11:47:17 -050023<a href="httplib2.html">httplib2</a><br>
24</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
25<a href="oauth2.html">oauth2</a><br>
26</td><td width="25%" valign=top><a href="simplejson.html">simplejson</a><br>
27<a href="urllib.html">urllib</a><br>
28</td><td width="25%" valign=top><a href="urlparse.html">urlparse</a><br>
Joe Gregorio6e537032011-02-09 23:04:26 -050029</td></tr></table></td></tr></table><p>
Joe Gregorio30dfdc32010-12-09 16:34:22 -050030<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
31<tr bgcolor="#ee77aa">
32<td colspan=3 valign=bottom>&nbsp;<br>
33<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
34
35<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
36<td width="100%"><dl>
37<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
38</font></dt><dd>
39<dl>
40<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#Credentials">Credentials</a>
41</font></dt><dd>
42<dl>
43<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#OAuthCredentials">OAuthCredentials</a>
44</font></dt></dl>
45</dd>
Joe Gregorio6e537032011-02-09 23:04:26 -050046<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#Flow">Flow</a>
47</font></dt><dd>
48<dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -050049<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#FlowThreeLegged">FlowThreeLegged</a>
50</font></dt></dl>
51</dd>
Joe Gregoriofffa7d72011-02-18 17:20:39 -050052<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#Storage">Storage</a>
53</font></dt></dl>
Joe Gregorio6e537032011-02-09 23:04:26 -050054</dd>
Joe Gregorio30dfdc32010-12-09 16:34:22 -050055<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
56</font></dt><dd>
57<dl>
58<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#Error">Error</a>
59</font></dt><dd>
60<dl>
Joe Gregoriofffa7d72011-02-18 17:20:39 -050061<dt><font face="helvetica, arial"><a href="apiclient.oauth.html#CredentialsInvalidError">CredentialsInvalidError</a>
62</font></dt><dt><font face="helvetica, arial"><a href="apiclient.oauth.html#MissingParameter">MissingParameter</a>
Joe Gregorio30dfdc32010-12-09 16:34:22 -050063</font></dt><dt><font face="helvetica, arial"><a href="apiclient.oauth.html#RequestError">RequestError</a>
64</font></dt></dl>
65</dd>
66</dl>
67</dd>
68</dl>
69 <p>
70<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
71<tr bgcolor="#ffc8d8">
72<td colspan=3 valign=bottom>&nbsp;<br>
73<font color="#000000" face="helvetica, arial"><a name="Credentials">class <strong>Credentials</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
74
75<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
76<td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Credentials">Credentials</a>&nbsp;objects.<br>
77&nbsp;<br>
78Subclasses&nbsp;must&nbsp;define&nbsp;an&nbsp;<a href="#Credentials-authorize">authorize</a>()&nbsp;method<br>
79that&nbsp;applies&nbsp;the&nbsp;credentials&nbsp;to&nbsp;an&nbsp;HTTP&nbsp;transport.<br>&nbsp;</tt></td></tr>
80<tr><td>&nbsp;</td>
81<td width="100%">Methods defined here:<br>
82<dl><dt><a name="Credentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Take&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;(or&nbsp;equivalent)&nbsp;and<br>
83authorizes&nbsp;it&nbsp;for&nbsp;the&nbsp;set&nbsp;of&nbsp;credentials,&nbsp;usually&nbsp;by<br>
84replacing&nbsp;http.request()&nbsp;with&nbsp;a&nbsp;method&nbsp;that&nbsp;adds&nbsp;in<br>
85the&nbsp;appropriate&nbsp;headers&nbsp;and&nbsp;then&nbsp;delegates&nbsp;to&nbsp;the&nbsp;original<br>
86Http.request()&nbsp;method.</tt></dd></dl>
87
88<hr>
89Data descriptors defined here:<br>
90<dl><dt><strong>__dict__</strong></dt>
91<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
92</dl>
93<dl><dt><strong>__weakref__</strong></dt>
94<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
95</dl>
96</td></tr></table> <p>
97<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
98<tr bgcolor="#ffc8d8">
99<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500100<font color="#000000" face="helvetica, arial"><a name="CredentialsInvalidError">class <strong>CredentialsInvalidError</strong></a>(<a href="apiclient.oauth.html#Error">Error</a>)</font></td></tr>
101
102<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
103<td width="100%"><dl><dt>Method resolution order:</dt>
104<dd><a href="apiclient.oauth.html#CredentialsInvalidError">CredentialsInvalidError</a></dd>
105<dd><a href="apiclient.oauth.html#Error">Error</a></dd>
106<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
107<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
108<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
109</dl>
110<hr>
111Data descriptors inherited from <a href="apiclient.oauth.html#Error">Error</a>:<br>
112<dl><dt><strong>__weakref__</strong></dt>
113<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
114</dl>
115<hr>
116Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregorio4258d6b2011-03-18 10:20:16 -0400117<dl><dt><a name="CredentialsInvalidError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500118
119<hr>
120Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
121<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#CredentialsInvalidError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
122
123<hr>
124Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
125<dl><dt><a name="CredentialsInvalidError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
126
127<dl><dt><a name="CredentialsInvalidError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
128
129<dl><dt><a name="CredentialsInvalidError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
130
131<dl><dt><a name="CredentialsInvalidError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
132&nbsp;<br>
133Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
134
135<dl><dt><a name="CredentialsInvalidError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
136
137<dl><dt><a name="CredentialsInvalidError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
138
139<dl><dt><a name="CredentialsInvalidError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
140
141<dl><dt><a name="CredentialsInvalidError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
142
143<dl><dt><a name="CredentialsInvalidError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#CredentialsInvalidError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
144
145<dl><dt><a name="CredentialsInvalidError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
146
147<hr>
148Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
149<dl><dt><strong>__dict__</strong></dt>
150</dl>
151<dl><dt><strong>args</strong></dt>
152</dl>
153<dl><dt><strong>message</strong></dt>
154</dl>
155</td></tr></table> <p>
156<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
157<tr bgcolor="#ffc8d8">
158<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500159<font color="#000000" face="helvetica, arial"><a name="Error">class <strong>Error</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
160
161<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
162<td colspan=2><tt>Base&nbsp;error&nbsp;for&nbsp;this&nbsp;module.<br>&nbsp;</tt></td></tr>
163<tr><td>&nbsp;</td>
164<td width="100%"><dl><dt>Method resolution order:</dt>
165<dd><a href="apiclient.oauth.html#Error">Error</a></dd>
166<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
167<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
168<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
169</dl>
170<hr>
171Data descriptors defined here:<br>
172<dl><dt><strong>__weakref__</strong></dt>
173<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
174</dl>
175<hr>
176Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregorio4258d6b2011-03-18 10:20:16 -0400177<dl><dt><a name="Error-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500178
179<hr>
180Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
181<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#Error-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
182
183<hr>
184Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
185<dl><dt><a name="Error-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
186
187<dl><dt><a name="Error-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
188
189<dl><dt><a name="Error-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
190
191<dl><dt><a name="Error-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
192&nbsp;<br>
193Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
194
195<dl><dt><a name="Error-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
196
197<dl><dt><a name="Error-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
198
199<dl><dt><a name="Error-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
200
201<dl><dt><a name="Error-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
202
203<dl><dt><a name="Error-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
204
205<dl><dt><a name="Error-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
206
207<hr>
208Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
209<dl><dt><strong>__dict__</strong></dt>
210</dl>
211<dl><dt><strong>args</strong></dt>
212</dl>
213<dl><dt><strong>message</strong></dt>
214</dl>
215</td></tr></table> <p>
216<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
217<tr bgcolor="#ffc8d8">
218<td colspan=3 valign=bottom>&nbsp;<br>
Joe Gregorio6e537032011-02-09 23:04:26 -0500219<font color="#000000" face="helvetica, arial"><a name="Flow">class <strong>Flow</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
220
221<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
222<td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Flow">Flow</a>&nbsp;objects.<br>&nbsp;</tt></td></tr>
223<tr><td>&nbsp;</td>
224<td width="100%">Data descriptors defined here:<br>
225<dl><dt><strong>__dict__</strong></dt>
226<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
227</dl>
228<dl><dt><strong>__weakref__</strong></dt>
229<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
230</dl>
231</td></tr></table> <p>
232<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
233<tr bgcolor="#ffc8d8">
234<td colspan=3 valign=bottom>&nbsp;<br>
235<font color="#000000" face="helvetica, arial"><a name="FlowThreeLegged">class <strong>FlowThreeLegged</strong></a>(<a href="apiclient.oauth.html#Flow">Flow</a>)</font></td></tr>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500236
237<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
238<td colspan=2><tt>Does&nbsp;the&nbsp;Three&nbsp;Legged&nbsp;Dance&nbsp;for&nbsp;OAuth&nbsp;1.0a.<br>&nbsp;</tt></td></tr>
239<tr><td>&nbsp;</td>
Joe Gregorio6e537032011-02-09 23:04:26 -0500240<td width="100%"><dl><dt>Method resolution order:</dt>
241<dd><a href="apiclient.oauth.html#FlowThreeLegged">FlowThreeLegged</a></dd>
242<dd><a href="apiclient.oauth.html#Flow">Flow</a></dd>
243<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
244</dl>
245<hr>
246Methods defined here:<br>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500247<dl><dt><a name="FlowThreeLegged-__init__"><strong>__init__</strong></a>(self, discovery, consumer_key, consumer_secret, user_agent, **kwargs)</dt><dd><tt>discovery&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Section&nbsp;of&nbsp;the&nbsp;API&nbsp;discovery&nbsp;document&nbsp;that&nbsp;describes<br>
248&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;OAuth&nbsp;endpoints.<br>
249consumer_key&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;OAuth&nbsp;consumer&nbsp;key<br>
250consumer_secret&nbsp;-&nbsp;OAuth&nbsp;consumer&nbsp;secret<br>
251user_agent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;The&nbsp;HTTP&nbsp;User-Agent&nbsp;that&nbsp;identifies&nbsp;the&nbsp;application.<br>
252**kwargs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;The&nbsp;keyword&nbsp;arguments&nbsp;are&nbsp;all&nbsp;optional&nbsp;and&nbsp;required<br>
253&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameters&nbsp;for&nbsp;the&nbsp;OAuth&nbsp;calls.</tt></dd></dl>
254
255<dl><dt><a name="FlowThreeLegged-step1_get_authorize_url"><strong>step1_get_authorize_url</strong></a>(self, oauth_callback<font color="#909090">='oob'</font>)</dt><dd><tt>Returns&nbsp;a&nbsp;URI&nbsp;to&nbsp;redirect&nbsp;to&nbsp;the&nbsp;provider.<br>
256&nbsp;<br>
257oauth_callback&nbsp;-&nbsp;Either&nbsp;the&nbsp;string&nbsp;'oob'&nbsp;for&nbsp;a&nbsp;non-web-based&nbsp;application,<br>
258&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;a&nbsp;URI&nbsp;that&nbsp;handles&nbsp;the&nbsp;callback&nbsp;from&nbsp;the&nbsp;authorization<br>
259&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.<br>
260&nbsp;<br>
261If&nbsp;oauth_callback&nbsp;is&nbsp;'oob'&nbsp;then&nbsp;pass&nbsp;in&nbsp;the<br>
262generated&nbsp;verification&nbsp;code&nbsp;to&nbsp;step2_exchange,<br>
263otherwise&nbsp;pass&nbsp;in&nbsp;the&nbsp;query&nbsp;parameters&nbsp;received<br>
264at&nbsp;the&nbsp;callback&nbsp;uri&nbsp;to&nbsp;step2_exchange.</tt></dd></dl>
265
266<dl><dt><a name="FlowThreeLegged-step2_exchange"><strong>step2_exchange</strong></a>(self, verifier)</dt><dd><tt>Exhanges&nbsp;an&nbsp;authorized&nbsp;request&nbsp;token<br>
267for&nbsp;<a href="#OAuthCredentials">OAuthCredentials</a>.<br>
268&nbsp;<br>
Joe Gregorio4258d6b2011-03-18 10:20:16 -0400269Args:<br>
270&nbsp;&nbsp;verifier:&nbsp;string,&nbsp;dict&nbsp;-&nbsp;either&nbsp;the&nbsp;verifier&nbsp;token,&nbsp;or&nbsp;a&nbsp;dictionary<br>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500271&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;the&nbsp;query&nbsp;parameters&nbsp;to&nbsp;the&nbsp;callback,&nbsp;which&nbsp;contains<br>
Joe Gregorio4258d6b2011-03-18 10:20:16 -0400272&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;oauth_verifier.<br>
273Returns:<br>
274&nbsp;&nbsp;&nbsp;The&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500275
276<hr>
Joe Gregorio6e537032011-02-09 23:04:26 -0500277Data descriptors inherited from <a href="apiclient.oauth.html#Flow">Flow</a>:<br>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500278<dl><dt><strong>__dict__</strong></dt>
279<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
280</dl>
281<dl><dt><strong>__weakref__</strong></dt>
282<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
283</dl>
284</td></tr></table> <p>
285<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
286<tr bgcolor="#ffc8d8">
287<td colspan=3 valign=bottom>&nbsp;<br>
288<font color="#000000" face="helvetica, arial"><a name="MissingParameter">class <strong>MissingParameter</strong></a>(<a href="apiclient.oauth.html#Error">Error</a>)</font></td></tr>
289
290<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
291<td width="100%"><dl><dt>Method resolution order:</dt>
292<dd><a href="apiclient.oauth.html#MissingParameter">MissingParameter</a></dd>
293<dd><a href="apiclient.oauth.html#Error">Error</a></dd>
294<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
295<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
296<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
297</dl>
298<hr>
299Data descriptors inherited from <a href="apiclient.oauth.html#Error">Error</a>:<br>
300<dl><dt><strong>__weakref__</strong></dt>
301<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
302</dl>
303<hr>
304Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregorio4258d6b2011-03-18 10:20:16 -0400305<dl><dt><a name="MissingParameter-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500306
307<hr>
308Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
309<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#MissingParameter-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
310
311<hr>
312Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
313<dl><dt><a name="MissingParameter-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
314
315<dl><dt><a name="MissingParameter-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
316
317<dl><dt><a name="MissingParameter-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
318
319<dl><dt><a name="MissingParameter-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
320&nbsp;<br>
321Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
322
323<dl><dt><a name="MissingParameter-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
324
325<dl><dt><a name="MissingParameter-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
326
327<dl><dt><a name="MissingParameter-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
328
329<dl><dt><a name="MissingParameter-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
330
331<dl><dt><a name="MissingParameter-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#MissingParameter-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
332
333<dl><dt><a name="MissingParameter-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
334
335<hr>
336Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
337<dl><dt><strong>__dict__</strong></dt>
338</dl>
339<dl><dt><strong>args</strong></dt>
340</dl>
341<dl><dt><strong>message</strong></dt>
342</dl>
343</td></tr></table> <p>
344<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
345<tr bgcolor="#ffc8d8">
346<td colspan=3 valign=bottom>&nbsp;<br>
347<font color="#000000" face="helvetica, arial"><a name="OAuthCredentials">class <strong>OAuthCredentials</strong></a>(<a href="apiclient.oauth.html#Credentials">Credentials</a>)</font></td></tr>
348
349<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
350<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;1.0a<br>&nbsp;</tt></td></tr>
351<tr><td>&nbsp;</td>
352<td width="100%"><dl><dt>Method resolution order:</dt>
353<dd><a href="apiclient.oauth.html#OAuthCredentials">OAuthCredentials</a></dd>
354<dd><a href="apiclient.oauth.html#Credentials">Credentials</a></dd>
355<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
356</dl>
357<hr>
358Methods defined here:<br>
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500359<dl><dt><a name="OAuthCredentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
360
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500361<dl><dt><a name="OAuthCredentials-__init__"><strong>__init__</strong></a>(self, consumer, token, user_agent)</dt><dd><tt>consumer&nbsp;&nbsp;&nbsp;-&nbsp;An&nbsp;instance&nbsp;of&nbsp;oauth.Consumer.<br>
362token&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;An&nbsp;instance&nbsp;of&nbsp;oauth.Token&nbsp;constructed&nbsp;with<br>
363&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;access&nbsp;token&nbsp;and&nbsp;secret.<br>
364user_agent&nbsp;-&nbsp;The&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.</tt></dd></dl>
365
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500366<dl><dt><a name="OAuthCredentials-__setstate__"><strong>__setstate__</strong></a>(self, state)</dt><dd><tt>Reconstitute&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;being&nbsp;pickled.</tt></dd></dl>
367
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500368<dl><dt><a name="OAuthCredentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Args:<br>
369&nbsp;&nbsp;&nbsp;http&nbsp;-&nbsp;An&nbsp;instance&nbsp;of&nbsp;httplib2.Http<br>
370&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;something&nbsp;that&nbsp;acts&nbsp;like&nbsp;it.<br>
371&nbsp;<br>
372Returns:<br>
373&nbsp;&nbsp;&nbsp;A&nbsp;modified&nbsp;instance&nbsp;of&nbsp;http&nbsp;that&nbsp;was&nbsp;passed&nbsp;in.<br>
374&nbsp;<br>
375Example:<br>
376&nbsp;<br>
377&nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
378&nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#OAuthCredentials-authorize">authorize</a>(h)<br>
379&nbsp;<br>
380You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth<br>
381subclass&nbsp;of&nbsp;httplib2.Authenication&nbsp;because<br>
382it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is<br>
383needed&nbsp;for&nbsp;signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload<br>
384'request'&nbsp;with&nbsp;a&nbsp;closure&nbsp;that&nbsp;adds&nbsp;in&nbsp;the<br>
385Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original&nbsp;version<br>
386of&nbsp;'request()'.</tt></dd></dl>
387
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500388<dl><dt><a name="OAuthCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;storage&nbsp;for&nbsp;the&nbsp;credential.<br>
389&nbsp;<br>
390Args:<br>
391&nbsp;&nbsp;store:&nbsp;callable,&nbsp;a&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
392&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.<br>
393&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
394&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;been&nbsp;revoked.</tt></dd></dl>
395
396<hr>
397Data descriptors defined here:<br>
398<dl><dt><strong>invalid</strong></dt>
399<dd><tt>True&nbsp;if&nbsp;the&nbsp;credentials&nbsp;are&nbsp;invalid,&nbsp;such&nbsp;as&nbsp;being&nbsp;revoked.</tt></dd>
400</dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500401<hr>
402Data descriptors inherited from <a href="apiclient.oauth.html#Credentials">Credentials</a>:<br>
403<dl><dt><strong>__dict__</strong></dt>
404<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
405</dl>
406<dl><dt><strong>__weakref__</strong></dt>
407<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
408</dl>
409</td></tr></table> <p>
410<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
411<tr bgcolor="#ffc8d8">
412<td colspan=3 valign=bottom>&nbsp;<br>
413<font color="#000000" face="helvetica, arial"><a name="RequestError">class <strong>RequestError</strong></a>(<a href="apiclient.oauth.html#Error">Error</a>)</font></td></tr>
414
415<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
416<td colspan=2><tt><a href="#Error">Error</a>&nbsp;occurred&nbsp;during&nbsp;request.<br>&nbsp;</tt></td></tr>
417<tr><td>&nbsp;</td>
418<td width="100%"><dl><dt>Method resolution order:</dt>
419<dd><a href="apiclient.oauth.html#RequestError">RequestError</a></dd>
420<dd><a href="apiclient.oauth.html#Error">Error</a></dd>
421<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
422<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
423<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
424</dl>
425<hr>
426Data descriptors inherited from <a href="apiclient.oauth.html#Error">Error</a>:<br>
427<dl><dt><strong>__weakref__</strong></dt>
428<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
429</dl>
430<hr>
431Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
Joe Gregorio4258d6b2011-03-18 10:20:16 -0400432<dl><dt><a name="RequestError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;help(type(x))&nbsp;for&nbsp;signature</tt></dd></dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500433
434<hr>
435Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
436<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#RequestError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
437
438<hr>
439Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
440<dl><dt><a name="RequestError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
441
442<dl><dt><a name="RequestError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
443
444<dl><dt><a name="RequestError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
445
446<dl><dt><a name="RequestError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
447&nbsp;<br>
448Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
449
450<dl><dt><a name="RequestError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
451
452<dl><dt><a name="RequestError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
453
454<dl><dt><a name="RequestError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
455
456<dl><dt><a name="RequestError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
457
458<dl><dt><a name="RequestError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#RequestError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
459
460<dl><dt><a name="RequestError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
461
462<hr>
463Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
464<dl><dt><strong>__dict__</strong></dt>
465</dl>
466<dl><dt><strong>args</strong></dt>
467</dl>
468<dl><dt><strong>message</strong></dt>
469</dl>
Joe Gregoriofffa7d72011-02-18 17:20:39 -0500470</td></tr></table> <p>
471<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
472<tr bgcolor="#ffc8d8">
473<td colspan=3 valign=bottom>&nbsp;<br>
474<font color="#000000" face="helvetica, arial"><a name="Storage">class <strong>Storage</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
475
476<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
477<td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Storage">Storage</a>&nbsp;objects.<br>
478&nbsp;<br>
479Store&nbsp;and&nbsp;retrieve&nbsp;a&nbsp;single&nbsp;credential.<br>&nbsp;</tt></td></tr>
480<tr><td>&nbsp;</td>
481<td width="100%">Methods defined here:<br>
482<dl><dt><a name="Storage-get"><strong>get</strong></a>(self)</dt><dd><tt>Retrieve&nbsp;credential.<br>
483&nbsp;<br>
484Returns:<br>
485&nbsp;&nbsp;apiclient.oauth.<a href="#Credentials">Credentials</a></tt></dd></dl>
486
487<dl><dt><a name="Storage-put"><strong>put</strong></a>(self, credentials)</dt><dd><tt>Write&nbsp;a&nbsp;credential.<br>
488&nbsp;<br>
489Args:<br>
490&nbsp;&nbsp;credentials:&nbsp;<a href="#Credentials">Credentials</a>,&nbsp;the&nbsp;credentials&nbsp;to&nbsp;store.</tt></dd></dl>
491
492<hr>
493Data descriptors defined here:<br>
494<dl><dt><strong>__dict__</strong></dt>
495<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
496</dl>
497<dl><dt><strong>__weakref__</strong></dt>
498<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
499</dl>
Joe Gregorio30dfdc32010-12-09 16:34:22 -0500500</td></tr></table></td></tr></table><p>
501<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
502<tr bgcolor="#55aa55">
503<td colspan=3 valign=bottom>&nbsp;<br>
504<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
505
506<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
507<td width="100%"><strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'</td></tr></table><p>
508<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
509<tr bgcolor="#7799ee">
510<td colspan=3 valign=bottom>&nbsp;<br>
511<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
512
513<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
514<td width="100%">jcgregorio@google.com&nbsp;(Joe&nbsp;Gregorio)</td></tr></table>
515</body></html>