blob: 9a184a3dfff63341da1d5c60a6389bb81a902336 [file] [log] [blame]
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -04001<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6 <title>oauth2client.client.SignedJwtAssertionCredentials</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12 alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
16 <tr valign="middle">
17
18 <!-- Tree link -->
19 <th>&nbsp;&nbsp;&nbsp;<a
20 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
21
22 <!-- Index link -->
23 <th>&nbsp;&nbsp;&nbsp;<a
24 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
25
26 <!-- Help link -->
27 <th>&nbsp;&nbsp;&nbsp;<a
28 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
29
30 <th class="navbar" width="100%"></th>
31 </tr>
32</table>
33<table width="100%" cellpadding="0" cellspacing="0">
34 <tr valign="top">
35 <td width="100%">
36 <span class="breadcrumbs">
37 <a href="oauth2client-module.html">Package&nbsp;oauth2client</a> ::
38 <a href="oauth2client.client-module.html">Module&nbsp;client</a> ::
39 Class&nbsp;SignedJwtAssertionCredentials
40 </span>
41 </td>
42 <td>
43 <table cellpadding="0" cellspacing="0">
44 <!-- hide/show private -->
45 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
46 onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
47 <tr><td align="right"><span class="options"
48 >[<a href="frames.html" target="_top">frames</a
49 >]&nbsp;|&nbsp;<a href="oauth2client.client.SignedJwtAssertionCredentials-class.html"
50 target="_top">no&nbsp;frames</a>]</span></td></tr>
51 </table>
52 </td>
53 </tr>
54</table>
55<!-- ==================== CLASS DESCRIPTION ==================== -->
56<h1 class="epydoc">Class SignedJwtAssertionCredentials</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials">source&nbsp;code</a></span></p>
57<center>
Joe Gregorio746096f2012-06-15 10:53:36 -040058<center> <map id="class_hierarchy_for_signedjwta" name="class_hierarchy_for_signedjwta">
Joe Gregorio52a5c532013-01-24 16:19:07 -050059<area shape="rect" id="node1" href="oauth2client.client.AssertionCredentials-class.html" title="AssertionCredentials" alt="" coords="5,6,147,34"/>
60<area shape="rect" id="node2" href="oauth2client.client.Credentials-class.html" title="Credentials" alt="" coords="171,6,259,34"/>
61<area shape="rect" id="node3" href="oauth2client.client.OAuth2Credentials-class.html" title="OAuth2Credentials" alt="" coords="283,6,413,34"/>
62<area shape="rect" id="node4" href="oauth2client.client.SignedJwtAssertionCredentials-class.html" title="SignedJwtAssertionCredentials" alt="" coords="437,6,640,34"/>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040063</map>
Joe Gregorio746096f2012-06-15 10:53:36 -040064 <img src="class_hierarchy_for_signedjwta.gif" alt='' usemap="#class_hierarchy_for_signedjwta" ismap="ismap" class="graph-without-title" />
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040065</center>
66</center>
67<hr />
68<pre class="literalblock">
69Credentials object used for OAuth 2.0 Signed JWT assertion grants.
70
Joe Gregorio672051e2012-07-10 09:11:45 -040071This credential does not require a flow to instantiate because it represents
72a two legged flow, and therefore has all of the required information to
73generate and refresh its own access tokens.
74
Joe Gregorio52a5c532013-01-24 16:19:07 -050075SignedJwtAssertionCredentials requires either PyOpenSSL, or PyCrypto 2.6 or
76later. For App Engine you may also consider using AppAssertionCredentials.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -040077
78</pre>
79
80<!-- ==================== INSTANCE METHODS ==================== -->
81<a name="section-InstanceMethods"></a>
82<table class="summary" border="1" cellpadding="3"
83 cellspacing="0" width="100%" bgcolor="white">
84<tr bgcolor="#70b0f0" class="table-header">
85 <td colspan="2" class="table-header">
86 <table border="0" cellpadding="0" cellspacing="0" width="100%">
87 <tr valign="top">
88 <td align="left"><span class="table-header">Instance Methods</span></td>
89 <td align="right" valign="top"
90 ><span class="options">[<a href="#section-InstanceMethods"
91 class="privatelink" onclick="toggle_private();"
92 >hide private</a>]</span></td>
93 </tr>
94 </table>
95 </td>
96</tr>
97<tr>
98 <td width="15%" align="right" valign="top" class="summary">
99 <span class="summary-type">&nbsp;</span>
100 </td><td class="summary">
101 <table width="100%" cellpadding="0" cellspacing="0" border="0">
102 <tr>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400103 <td><span class="summary-sig"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
104 <span class="summary-sig-arg">service_account_name</span>,
105 <span class="summary-sig-arg">private_key</span>,
106 <span class="summary-sig-arg">scope</span>,
107 <span class="summary-sig-arg">private_key_password</span>=<span class="summary-sig-default">'notasecret'</span>,
108 <span class="summary-sig-arg">user_agent</span>=<span class="summary-sig-default">None</span>,
Joe Gregorio41be8e82013-03-07 10:31:47 -0500109 <span class="summary-sig-arg">token_uri</span>=<span class="summary-sig-default">GOOGLE_TOKEN_URI</span>,
110 <span class="summary-sig-arg">revoke_uri</span>=<span class="summary-sig-default">GOOGLE_REVOKE_URI</span>,
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400111 <span class="summary-sig-arg">**kwargs</span>)</span><br />
112 Constructor for SignedJwtAssertionCredentials.</td>
113 <td align="right" valign="top">
Joe Gregoriof4839b02012-09-06 13:47:24 -0400114 <span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials.__init__">source&nbsp;code</a></span>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400115
116 </td>
117 </tr>
118 </table>
119
120 </td>
121 </tr>
122<tr class="private">
123 <td width="15%" align="right" valign="top" class="summary">
124 <span class="summary-type">&nbsp;</span>
125 </td><td class="summary">
126 <table width="100%" cellpadding="0" cellspacing="0" border="0">
127 <tr>
128 <td><span class="summary-sig"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion" class="summary-sig-name" onclick="show_private();">_generate_assertion</a>(<span class="summary-sig-arg">self</span>)</span><br />
129 Generate the assertion that will be used in the request.</td>
130 <td align="right" valign="top">
131 <span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials._generate_assertion">source&nbsp;code</a></span>
132
133 </td>
134 </tr>
135 </table>
136
137 </td>
138 </tr>
139 <tr>
140 <td colspan="2" class="summary">
141 <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a></code></b> (private):
Joe Gregorio41be8e82013-03-07 10:31:47 -0500142 <code><a href="oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body" onclick="show_private();">_generate_refresh_request_body</a></code>,
143 <code><a href="oauth2client.client.AssertionCredentials-class.html#_revoke" onclick="show_private();">_revoke</a></code>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400144 </p></div>
145 <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a></code></b>:
146 <code><a href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__</a></code>,
147 <code><a href="oauth2client.client.OAuth2Credentials-class.html#__setstate__">__setstate__</a></code>,
Joe Gregoriof4839b02012-09-06 13:47:24 -0400148 <code><a href="oauth2client.client.OAuth2Credentials-class.html#access_token_expired">access_token_expired</a></code>,
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400149 <code><a href="oauth2client.client.OAuth2Credentials-class.html#apply">apply</a></code>,
150 <code><a href="oauth2client.client.OAuth2Credentials-class.html#authorize">authorize</a></code>,
151 <code><a href="oauth2client.client.OAuth2Credentials-class.html#refresh">refresh</a></code>,
Joe Gregorio41be8e82013-03-07 10:31:47 -0500152 <code><a href="oauth2client.client.OAuth2Credentials-class.html#revoke">revoke</a></code>,
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400153 <code><a href="oauth2client.client.OAuth2Credentials-class.html#set_store">set_store</a></code>,
154 <code><a href="oauth2client.client.OAuth2Credentials-class.html#to_json">to_json</a></code>
155 </p>
156 <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a></code></b> (private):
157 <code><a href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request" onclick="show_private();">_do_refresh_request</a></code>,
Joe Gregorio41be8e82013-03-07 10:31:47 -0500158 <code><a href="oauth2client.client.OAuth2Credentials-class.html#_do_revoke" onclick="show_private();">_do_revoke</a></code>,
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400159 <code><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers" onclick="show_private();">_generate_refresh_request_headers</a></code>,
160 <code><a href="oauth2client.client.OAuth2Credentials-class.html#_refresh" onclick="show_private();">_refresh</a></code>,
161 <code><a href="oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential" onclick="show_private();">_updateFromCredential</a></code>
162 </p></div>
163 <div class="private"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.Credentials-class.html">Credentials</a></code></b> (private):
164 <code><a href="oauth2client.client.Credentials-class.html#_to_json" onclick="show_private();">_to_json</a></code>
165 </p></div>
166 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
167 <code>__delattr__</code>,
168 <code>__format__</code>,
169 <code>__getattribute__</code>,
170 <code>__hash__</code>,
171 <code>__new__</code>,
172 <code>__reduce__</code>,
173 <code>__reduce_ex__</code>,
174 <code>__repr__</code>,
175 <code>__setattr__</code>,
176 <code>__sizeof__</code>,
177 <code>__str__</code>,
178 <code>__subclasshook__</code>
179 </p>
180 </td>
181 </tr>
182</table>
183<!-- ==================== CLASS METHODS ==================== -->
184<a name="section-ClassMethods"></a>
185<table class="summary" border="1" cellpadding="3"
186 cellspacing="0" width="100%" bgcolor="white">
187<tr bgcolor="#70b0f0" class="table-header">
188 <td colspan="2" class="table-header">
189 <table border="0" cellpadding="0" cellspacing="0" width="100%">
190 <tr valign="top">
191 <td align="left"><span class="table-header">Class Methods</span></td>
192 <td align="right" valign="top"
193 ><span class="options">[<a href="#section-ClassMethods"
194 class="privatelink" onclick="toggle_private();"
195 >hide private</a>]</span></td>
196 </tr>
197 </table>
198 </td>
199</tr>
200<tr>
201 <td width="15%" align="right" valign="top" class="summary">
202 <span class="summary-type">&nbsp;</span>
203 </td><td class="summary">
204 <table width="100%" cellpadding="0" cellspacing="0" border="0">
205 <tr>
206 <td><span class="summary-sig"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#from_json" class="summary-sig-name">from_json</a>(<span class="summary-sig-arg">cls</span>,
207 <span class="summary-sig-arg">s</span>)</span><br />
208 Instantiate a Credentials object from a JSON description of it.</td>
209 <td align="right" valign="top">
210 <span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials.from_json">source&nbsp;code</a></span>
211
212 </td>
213 </tr>
214 </table>
215
216 </td>
217 </tr>
218 <tr>
219 <td colspan="2" class="summary">
220 <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.Credentials-class.html">Credentials</a></code></b>:
221 <code><a href="oauth2client.client.Credentials-class.html#new_from_json">new_from_json</a></code>
222 </p>
223 </td>
224 </tr>
225</table>
226<!-- ==================== CLASS VARIABLES ==================== -->
227<a name="section-ClassVariables"></a>
228<table class="summary" border="1" cellpadding="3"
229 cellspacing="0" width="100%" bgcolor="white">
230<tr bgcolor="#70b0f0" class="table-header">
231 <td colspan="2" class="table-header">
232 <table border="0" cellpadding="0" cellspacing="0" width="100%">
233 <tr valign="top">
234 <td align="left"><span class="table-header">Class Variables</span></td>
235 <td align="right" valign="top"
236 ><span class="options">[<a href="#section-ClassVariables"
237 class="privatelink" onclick="toggle_private();"
238 >hide private</a>]</span></td>
239 </tr>
240 </table>
241 </td>
242</tr>
243<tr>
244 <td width="15%" align="right" valign="top" class="summary">
245 <span class="summary-type">&nbsp;</span>
246 </td><td class="summary">
247 <a name="MAX_TOKEN_LIFETIME_SECS"></a><span class="summary-name">MAX_TOKEN_LIFETIME_SECS</span> = <code title="3600">3600</code>
248 </td>
249 </tr>
250 <tr>
251 <td colspan="2" class="summary">
252 <p class="indent-wrapped-lines"><b>Inherited from <code><a href="oauth2client.client.Credentials-class.html">Credentials</a></code></b>:
253 <code><a href="oauth2client.client.Credentials-class.html#NON_SERIALIZED_MEMBERS">NON_SERIALIZED_MEMBERS</a></code>
254 </p>
255 </td>
256 </tr>
257</table>
258<!-- ==================== PROPERTIES ==================== -->
259<a name="section-Properties"></a>
260<table class="summary" border="1" cellpadding="3"
261 cellspacing="0" width="100%" bgcolor="white">
262<tr bgcolor="#70b0f0" class="table-header">
263 <td colspan="2" class="table-header">
264 <table border="0" cellpadding="0" cellspacing="0" width="100%">
265 <tr valign="top">
266 <td align="left"><span class="table-header">Properties</span></td>
267 <td align="right" valign="top"
268 ><span class="options">[<a href="#section-Properties"
269 class="privatelink" onclick="toggle_private();"
270 >hide private</a>]</span></td>
271 </tr>
272 </table>
273 </td>
274</tr>
275 <tr>
276 <td colspan="2" class="summary">
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400277 <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
278 <code>__class__</code>
279 </p>
280 </td>
281 </tr>
282</table>
283<!-- ==================== METHOD DETAILS ==================== -->
284<a name="section-MethodDetails"></a>
285<table class="details" border="1" cellpadding="3"
286 cellspacing="0" width="100%" bgcolor="white">
287<tr bgcolor="#70b0f0" class="table-header">
288 <td colspan="2" class="table-header">
289 <table border="0" cellpadding="0" cellspacing="0" width="100%">
290 <tr valign="top">
291 <td align="left"><span class="table-header">Method Details</span></td>
292 <td align="right" valign="top"
293 ><span class="options">[<a href="#section-MethodDetails"
294 class="privatelink" onclick="toggle_private();"
295 >hide private</a>]</span></td>
296 </tr>
297 </table>
298 </td>
299</tr>
300</table>
301<a name="__init__"></a>
302<div>
303<table class="details" border="1" cellpadding="3"
304 cellspacing="0" width="100%" bgcolor="white">
305<tr><td>
306 <table width="100%" cellpadding="0" cellspacing="0" border="0">
307 <tr valign="top"><td>
Joe Gregoriof4839b02012-09-06 13:47:24 -0400308 <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
309 <span class="sig-arg">service_account_name</span>,
310 <span class="sig-arg">private_key</span>,
311 <span class="sig-arg">scope</span>,
312 <span class="sig-arg">private_key_password</span>=<span class="sig-default">'notasecret'</span>,
313 <span class="sig-arg">user_agent</span>=<span class="sig-default">None</span>,
Joe Gregorio41be8e82013-03-07 10:31:47 -0500314 <span class="sig-arg">token_uri</span>=<span class="sig-default">GOOGLE_TOKEN_URI</span>,
315 <span class="sig-arg">revoke_uri</span>=<span class="sig-default">GOOGLE_REVOKE_URI</span>,
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400316 <span class="sig-arg">**kwargs</span>)</span>
317 <br /><em class="fname">(Constructor)</em>
318 </h3>
319 </td><td align="right" valign="top"
Joe Gregoriof4839b02012-09-06 13:47:24 -0400320 ><span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials.__init__">source&nbsp;code</a></span>&nbsp;
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400321 </td>
322 </tr></table>
323
324 <pre class="literalblock">
325Constructor for SignedJwtAssertionCredentials.
326
327Args:
328 service_account_name: string, id for account, usually an email address.
Joe Gregorio52a5c532013-01-24 16:19:07 -0500329 private_key: string, private key in PKCS12 or PEM format.
330 scope: string or iterable of strings, scope(s) of the credentials being
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400331 requested.
Joe Gregorio52a5c532013-01-24 16:19:07 -0500332 private_key_password: string, password for private_key, unused if
333 private_key is in PEM format.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400334 user_agent: string, HTTP User-Agent to provide for this application.
335 token_uri: string, URI for token endpoint. For convenience
336 defaults to Google's endpoints but any OAuth 2.0 provider can be used.
Joe Gregorio41be8e82013-03-07 10:31:47 -0500337 revoke_uri: string, URI for revoke endpoint.
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400338 kwargs: kwargs, Additional parameters to add to the JWT token, for
339 example prn=joe@xample.org.
340
341</pre>
342 <dl class="fields">
Joe Gregorio1b425aa2012-08-24 12:04:34 -0400343 <dt>Decorators:</dt>
344 <dd><ul class="nomargin-top">
345 <li><code>@util.positional(4)</code></li>
346 </ul></dd>
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400347 <dt>Overrides:
348 object.__init__
349 </dt>
350 </dl>
351</td></tr></table>
352</div>
353<a name="from_json"></a>
354<div>
355<table class="details" border="1" cellpadding="3"
356 cellspacing="0" width="100%" bgcolor="white">
357<tr><td>
358 <table width="100%" cellpadding="0" cellspacing="0" border="0">
359 <tr valign="top"><td>
360 <h3 class="epydoc"><span class="sig"><span class="sig-name">from_json</span>(<span class="sig-arg">cls</span>,
361 <span class="sig-arg">s</span>)</span>
362 <br /><em class="fname">Class Method</em>
363 </h3>
364 </td><td align="right" valign="top"
365 ><span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials.from_json">source&nbsp;code</a></span>&nbsp;
366 </td>
367 </tr></table>
368
369 <pre class="literalblock">
370Instantiate a Credentials object from a JSON description of it. The JSON
371should have been produced by calling .to_json() on the object.
372
373Args:
374 data: dict, A deserialized JSON object.
375
376Returns:
377 An instance of a Credentials subclass.
378
379</pre>
380 <dl class="fields">
381 <dt>Overrides:
382 <a href="oauth2client.client.Credentials-class.html#from_json">Credentials.from_json</a>
383 <dd><em class="note">(inherited documentation)</em></dd>
384 </dt>
385 </dl>
386</td></tr></table>
387</div>
388<a name="_generate_assertion"></a>
389<div class="private">
390<table class="details" border="1" cellpadding="3"
391 cellspacing="0" width="100%" bgcolor="white">
392<tr><td>
393 <table width="100%" cellpadding="0" cellspacing="0" border="0">
394 <tr valign="top"><td>
395 <h3 class="epydoc"><span class="sig"><span class="sig-name">_generate_assertion</span>(<span class="sig-arg">self</span>)</span>
396 </h3>
397 </td><td align="right" valign="top"
398 ><span class="codelink"><a href="oauth2client.client-pysrc.html#SignedJwtAssertionCredentials._generate_assertion">source&nbsp;code</a></span>&nbsp;
399 </td>
400 </tr></table>
401
402 <pre class="literalblock">
403Generate the assertion that will be used in the request.
404
405</pre>
406 <dl class="fields">
407 <dt>Overrides:
408 <a href="oauth2client.client.AssertionCredentials-class.html#_generate_assertion" onclick="show_private();">AssertionCredentials._generate_assertion</a>
409 </dt>
410 </dl>
411</td></tr></table>
412</div>
413<br />
414<!-- ==================== NAVIGATION BAR ==================== -->
415<table class="navbar" border="0" width="100%" cellpadding="0"
416 bgcolor="#a0c0ff" cellspacing="0">
417 <tr valign="middle">
418
419 <!-- Tree link -->
420 <th>&nbsp;&nbsp;&nbsp;<a
421 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
422
423 <!-- Index link -->
424 <th>&nbsp;&nbsp;&nbsp;<a
425 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
426
427 <!-- Help link -->
428 <th>&nbsp;&nbsp;&nbsp;<a
429 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
430
431 <th class="navbar" width="100%"></th>
432 </tr>
433</table>
434<table border="0" cellpadding="0" cellspacing="0" width="100%%">
435 <tr>
436 <td align="left" class="footer">
Joe Gregorio41be8e82013-03-07 10:31:47 -0500437 Generated by Epydoc 3.0.1 on Thu Mar 7 10:31:25 2013
Joe Gregorio5dc0f5c2012-06-05 13:34:31 -0400438 </td>
439 <td align="right" class="footer">
440 <a target="mainFrame" href="http://epydoc.sourceforge.net"
441 >http://epydoc.sourceforge.net</a>
442 </td>
443 </tr>
444</table>
445
446<script type="text/javascript">
447 <!--
448 // Private objects are initially displayed (because if
449 // javascript is turned off then we want them to be
450 // visible); but by default, we want to hide them. So hide
451 // them unless we have a cookie that says to show them.
452 checkCookie();
453 // -->
454</script>
455</body>
456</html>