1<?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>googleapiclient.http</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 <!-- Home link --> 18 <th> <a 19 href="googleapiclient-module.html">Home</a> </th> 20 21 <!-- Tree link --> 22 <th> <a 23 href="module-tree.html">Trees</a> </th> 24 25 <!-- Index link --> 26 <th> <a 27 href="identifier-index.html">Indices</a> </th> 28 29 <!-- Help link --> 30 <th> <a 31 href="help.html">Help</a> </th> 32 33 <th class="navbar" width="100%"></th> 34 </tr> 35</table> 36<table width="100%" cellpadding="0" cellspacing="0"> 37 <tr valign="top"> 38 <td width="100%"> 39 <span class="breadcrumbs"> 40 <a href="googleapiclient-module.html">Package googleapiclient</a> :: 41 Module http 42 </span> 43 </td> 44 <td> 45 <table cellpadding="0" cellspacing="0"> 46 <!-- hide/show private --> 47 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" 48 onclick="toggle_private();">hide private</a>]</span></td></tr> 49 <tr><td align="right"><span class="options" 50 >[<a href="frames.html" target="_top">frames</a 51 >] | <a href="googleapiclient.http-module.html" 52 target="_top">no frames</a>]</span></td></tr> 53 </table> 54 </td> 55 </tr> 56</table> 57<!-- ==================== MODULE DESCRIPTION ==================== --> 58<h1 class="epydoc">Module http</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html">source code</a></span></p> 59<p>Classes to encapsulate a single HTTP request.</p> 60 <p>The classes implement a command pattern, with every object supporting 61 an execute() method that does the actual HTTP request.</p> 62 63<hr /> 64<div class="fields"> <p><strong>Author:</strong> 65 [email protected] (Joe Gregorio) 66 </p> 67</div><!-- ==================== CLASSES ==================== --> 68<a name="section-Classes"></a> 69<table class="summary" border="1" cellpadding="3" 70 cellspacing="0" width="100%" bgcolor="white"> 71<tr bgcolor="#70b0f0" class="table-header"> 72 <td colspan="2" class="table-header"> 73 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 74 <tr valign="top"> 75 <td align="left"><span class="table-header">Classes</span></td> 76 <td align="right" valign="top" 77 ><span class="options">[<a href="#section-Classes" 78 class="privatelink" onclick="toggle_private();" 79 >hide private</a>]</span></td> 80 </tr> 81 </table> 82 </td> 83</tr> 84<tr> 85 <td width="15%" align="right" valign="top" class="summary"> 86 <span class="summary-type"> </span> 87 </td><td class="summary"> 88 <a href="googleapiclient.http.MediaUploadProgress-class.html" class="summary-name">MediaUploadProgress</a><br /> 89 Status of a resumable upload. 90 </td> 91 </tr> 92<tr> 93 <td width="15%" align="right" valign="top" class="summary"> 94 <span class="summary-type"> </span> 95 </td><td class="summary"> 96 <a href="googleapiclient.http.MediaDownloadProgress-class.html" class="summary-name">MediaDownloadProgress</a><br /> 97 Status of a resumable download. 98 </td> 99 </tr> 100<tr> 101 <td width="15%" align="right" valign="top" class="summary"> 102 <span class="summary-type"> </span> 103 </td><td class="summary"> 104 <a href="googleapiclient.http.MediaUpload-class.html" class="summary-name">MediaUpload</a><br /> 105 Describes a media object to upload. 106 </td> 107 </tr> 108<tr> 109 <td width="15%" align="right" valign="top" class="summary"> 110 <span class="summary-type"> </span> 111 </td><td class="summary"> 112 <a href="googleapiclient.http.MediaIoBaseUpload-class.html" class="summary-name">MediaIoBaseUpload</a><br /> 113 A MediaUpload for a io.Base objects. 114 </td> 115 </tr> 116<tr> 117 <td width="15%" align="right" valign="top" class="summary"> 118 <span class="summary-type"> </span> 119 </td><td class="summary"> 120 <a href="googleapiclient.http.MediaFileUpload-class.html" class="summary-name">MediaFileUpload</a><br /> 121 A MediaUpload for a file. 122 </td> 123 </tr> 124<tr> 125 <td width="15%" align="right" valign="top" class="summary"> 126 <span class="summary-type"> </span> 127 </td><td class="summary"> 128 <a href="googleapiclient.http.MediaInMemoryUpload-class.html" class="summary-name">MediaInMemoryUpload</a><br /> 129 MediaUpload for a chunk of bytes. 130 </td> 131 </tr> 132<tr> 133 <td width="15%" align="right" valign="top" class="summary"> 134 <span class="summary-type"> </span> 135 </td><td class="summary"> 136 <a href="googleapiclient.http.MediaIoBaseDownload-class.html" class="summary-name">MediaIoBaseDownload</a><br /> 137 "Download media resources. 138 </td> 139 </tr> 140<tr class="private"> 141 <td width="15%" align="right" valign="top" class="summary"> 142 <span class="summary-type"> </span> 143 </td><td class="summary"> 144 <a href="googleapiclient.http._StreamSlice-class.html" class="summary-name" onclick="show_private();">_StreamSlice</a><br /> 145 Truncated stream. 146 </td> 147 </tr> 148<tr> 149 <td width="15%" align="right" valign="top" class="summary"> 150 <span class="summary-type"> </span> 151 </td><td class="summary"> 152 <a href="googleapiclient.http.HttpRequest-class.html" class="summary-name">HttpRequest</a><br /> 153 Encapsulates a single HTTP request. 154 </td> 155 </tr> 156<tr> 157 <td width="15%" align="right" valign="top" class="summary"> 158 <span class="summary-type"> </span> 159 </td><td class="summary"> 160 <a href="googleapiclient.http.BatchHttpRequest-class.html" class="summary-name">BatchHttpRequest</a><br /> 161 Batches multiple HttpRequest objects into a single HTTP request. 162 </td> 163 </tr> 164<tr> 165 <td width="15%" align="right" valign="top" class="summary"> 166 <span class="summary-type"> </span> 167 </td><td class="summary"> 168 <a href="googleapiclient.http.HttpRequestMock-class.html" class="summary-name">HttpRequestMock</a><br /> 169 Mock of HttpRequest. 170 </td> 171 </tr> 172<tr> 173 <td width="15%" align="right" valign="top" class="summary"> 174 <span class="summary-type"> </span> 175 </td><td class="summary"> 176 <a href="googleapiclient.http.RequestMockBuilder-class.html" class="summary-name">RequestMockBuilder</a><br /> 177 A simple mock of HttpRequest 178 </td> 179 </tr> 180<tr> 181 <td width="15%" align="right" valign="top" class="summary"> 182 <span class="summary-type"> </span> 183 </td><td class="summary"> 184 <a href="googleapiclient.http.HttpMock-class.html" class="summary-name">HttpMock</a><br /> 185 Mock of httplib2.Http 186 </td> 187 </tr> 188<tr> 189 <td width="15%" align="right" valign="top" class="summary"> 190 <span class="summary-type"> </span> 191 </td><td class="summary"> 192 <a href="googleapiclient.http.HttpMockSequence-class.html" class="summary-name">HttpMockSequence</a><br /> 193 Mock of httplib2.Http 194 </td> 195 </tr> 196</table> 197<!-- ==================== FUNCTIONS ==================== --> 198<a name="section-Functions"></a> 199<table class="summary" border="1" cellpadding="3" 200 cellspacing="0" width="100%" bgcolor="white"> 201<tr bgcolor="#70b0f0" class="table-header"> 202 <td colspan="2" class="table-header"> 203 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 204 <tr valign="top"> 205 <td align="left"><span class="table-header">Functions</span></td> 206 <td align="right" valign="top" 207 ><span class="options">[<a href="#section-Functions" 208 class="privatelink" onclick="toggle_private();" 209 >hide private</a>]</span></td> 210 </tr> 211 </table> 212 </td> 213</tr> 214<tr class="private"> 215 <td width="15%" align="right" valign="top" class="summary"> 216 <span class="summary-type"> </span> 217 </td><td class="summary"> 218 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 219 <tr> 220 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#_should_retry_response" class="summary-sig-name" onclick="show_private();">_should_retry_response</a>(<span class="summary-sig-arg">resp_status</span>, 221 <span class="summary-sig-arg">content</span>)</span><br /> 222 Determines whether a response should be retried.</td> 223 <td align="right" valign="top"> 224 <span class="codelink"><a href="googleapiclient.http-pysrc.html#_should_retry_response">source code</a></span> 225 226 </td> 227 </tr> 228 </table> 229 230 </td> 231 </tr> 232<tr class="private"> 233 <td width="15%" align="right" valign="top" class="summary"> 234 <span class="summary-type"> </span> 235 </td><td class="summary"> 236 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 237 <tr> 238 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#_retry_request" class="summary-sig-name" onclick="show_private();">_retry_request</a>(<span class="summary-sig-arg">http</span>, 239 <span class="summary-sig-arg">num_retries</span>, 240 <span class="summary-sig-arg">req_type</span>, 241 <span class="summary-sig-arg">sleep</span>, 242 <span class="summary-sig-arg">rand</span>, 243 <span class="summary-sig-arg">uri</span>, 244 <span class="summary-sig-arg">method</span>, 245 <span class="summary-sig-arg">*args</span>, 246 <span class="summary-sig-arg">**kwargs</span>)</span><br /> 247 Retries an HTTP request multiple times while handling errors.</td> 248 <td align="right" valign="top"> 249 <span class="codelink"><a href="googleapiclient.http-pysrc.html#_retry_request">source code</a></span> 250 251 </td> 252 </tr> 253 </table> 254 255 </td> 256 </tr> 257<tr> 258 <td width="15%" align="right" valign="top" class="summary"> 259 <span class="summary-type"> </span> 260 </td><td class="summary"> 261 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 262 <tr> 263 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#set_user_agent" class="summary-sig-name">set_user_agent</a>(<span class="summary-sig-arg">http</span>, 264 <span class="summary-sig-arg">user_agent</span>)</span><br /> 265 Set the user-agent on every request.</td> 266 <td align="right" valign="top"> 267 <span class="codelink"><a href="googleapiclient.http-pysrc.html#set_user_agent">source code</a></span> 268 269 </td> 270 </tr> 271 </table> 272 273 </td> 274 </tr> 275<tr> 276 <td width="15%" align="right" valign="top" class="summary"> 277 <span class="summary-type"> </span> 278 </td><td class="summary"> 279 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 280 <tr> 281 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#tunnel_patch" class="summary-sig-name">tunnel_patch</a>(<span class="summary-sig-arg">http</span>)</span><br /> 282 Tunnel PATCH requests over POST.</td> 283 <td align="right" valign="top"> 284 <span class="codelink"><a href="googleapiclient.http-pysrc.html#tunnel_patch">source code</a></span> 285 286 </td> 287 </tr> 288 </table> 289 290 </td> 291 </tr> 292<tr> 293 <td width="15%" align="right" valign="top" class="summary"> 294 <span class="summary-type"> </span> 295 </td><td class="summary"> 296 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 297 <tr> 298 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#build_http" class="summary-sig-name">build_http</a>()</span><br /> 299 Builds httplib2.Http object</td> 300 <td align="right" valign="top"> 301 <span class="codelink"><a href="googleapiclient.http-pysrc.html#build_http">source code</a></span> 302 303 </td> 304 </tr> 305 </table> 306 307 </td> 308 </tr> 309</table> 310<!-- ==================== VARIABLES ==================== --> 311<a name="section-Variables"></a> 312<table class="summary" border="1" cellpadding="3" 313 cellspacing="0" width="100%" bgcolor="white"> 314<tr bgcolor="#70b0f0" class="table-header"> 315 <td colspan="2" class="table-header"> 316 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 317 <tr valign="top"> 318 <td align="left"><span class="table-header">Variables</span></td> 319 <td align="right" valign="top" 320 ><span class="options">[<a href="#section-Variables" 321 class="privatelink" onclick="toggle_private();" 322 >hide private</a>]</span></td> 323 </tr> 324 </table> 325 </td> 326</tr> 327<tr> 328 <td width="15%" align="right" valign="top" class="summary"> 329 <span class="summary-type"> </span> 330 </td><td class="summary"> 331 <a name="LOGGER"></a><span class="summary-name">LOGGER</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code> 332 </td> 333 </tr> 334<tr> 335 <td width="15%" align="right" valign="top" class="summary"> 336 <span class="summary-type"> </span> 337 </td><td class="summary"> 338 <a name="DEFAULT_CHUNK_SIZE"></a><span class="summary-name">DEFAULT_CHUNK_SIZE</span> = <code title="104857600">104857600</code> 339 </td> 340 </tr> 341<tr> 342 <td width="15%" align="right" valign="top" class="summary"> 343 <span class="summary-type"> </span> 344 </td><td class="summary"> 345 <a name="MAX_URI_LENGTH"></a><span class="summary-name">MAX_URI_LENGTH</span> = <code title="2048">2048</code> 346 </td> 347 </tr> 348<tr> 349 <td width="15%" align="right" valign="top" class="summary"> 350 <span class="summary-type"> </span> 351 </td><td class="summary"> 352 <a name="MAX_BATCH_LIMIT"></a><span class="summary-name">MAX_BATCH_LIMIT</span> = <code title="1000">1000</code> 353 </td> 354 </tr> 355<tr class="private"> 356 <td width="15%" align="right" valign="top" class="summary"> 357 <span class="summary-type"> </span> 358 </td><td class="summary"> 359 <a name="_TOO_MANY_REQUESTS"></a><span class="summary-name">_TOO_MANY_REQUESTS</span> = <code title="429">429</code> 360 </td> 361 </tr> 362<tr> 363 <td width="15%" align="right" valign="top" class="summary"> 364 <span class="summary-type"> </span> 365 </td><td class="summary"> 366 <a name="DEFAULT_HTTP_TIMEOUT_SEC"></a><span class="summary-name">DEFAULT_HTTP_TIMEOUT_SEC</span> = <code title="60">60</code> 367 </td> 368 </tr> 369<tr class="private"> 370 <td width="15%" align="right" valign="top" class="summary"> 371 <span class="summary-type"> </span> 372 </td><td class="summary"> 373 <a name="_LEGACY_BATCH_URI"></a><span class="summary-name">_LEGACY_BATCH_URI</span> = <code title="'https://www.googleapis.com/batch'"><code class="variable-quote">'</code><code class="variable-string">https://www.googleapis.com/batch</code><code class="variable-quote">'</code></code> 374 </td> 375 </tr> 376<tr> 377 <td width="15%" align="right" valign="top" class="summary"> 378 <span class="summary-type"> </span> 379 </td><td class="summary"> 380 <a name="ConnectionError"></a><span class="summary-name">ConnectionError</span> = <code title="None">None</code> 381 </td> 382 </tr> 383<tr> 384 <td width="15%" align="right" valign="top" class="summary"> 385 <span class="summary-type"> </span> 386 </td><td class="summary"> 387 <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code> 388 </td> 389 </tr> 390</table> 391<!-- ==================== FUNCTION DETAILS ==================== --> 392<a name="section-FunctionDetails"></a> 393<table class="details" border="1" cellpadding="3" 394 cellspacing="0" width="100%" bgcolor="white"> 395<tr bgcolor="#70b0f0" class="table-header"> 396 <td colspan="2" class="table-header"> 397 <table border="0" cellpadding="0" cellspacing="0" width="100%"> 398 <tr valign="top"> 399 <td align="left"><span class="table-header">Function Details</span></td> 400 <td align="right" valign="top" 401 ><span class="options">[<a href="#section-FunctionDetails" 402 class="privatelink" onclick="toggle_private();" 403 >hide private</a>]</span></td> 404 </tr> 405 </table> 406 </td> 407</tr> 408</table> 409<a name="_should_retry_response"></a> 410<div class="private"> 411<table class="details" border="1" cellpadding="3" 412 cellspacing="0" width="100%" bgcolor="white"> 413<tr><td> 414 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 415 <tr valign="top"><td> 416 <h3 class="epydoc"><span class="sig"><span class="sig-name">_should_retry_response</span>(<span class="sig-arg">resp_status</span>, 417 <span class="sig-arg">content</span>)</span> 418 </h3> 419 </td><td align="right" valign="top" 420 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#_should_retry_response">source code</a></span> 421 </td> 422 </tr></table> 423 424 <pre class="literalblock"> 425Determines whether a response should be retried. 426 427Args: 428 resp_status: The response status received. 429 content: The response content body. 430 431Returns: 432 True if the response should be retried, otherwise False. 433 434</pre> 435 <dl class="fields"> 436 </dl> 437</td></tr></table> 438</div> 439<a name="_retry_request"></a> 440<div class="private"> 441<table class="details" border="1" cellpadding="3" 442 cellspacing="0" width="100%" bgcolor="white"> 443<tr><td> 444 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 445 <tr valign="top"><td> 446 <h3 class="epydoc"><span class="sig"><span class="sig-name">_retry_request</span>(<span class="sig-arg">http</span>, 447 <span class="sig-arg">num_retries</span>, 448 <span class="sig-arg">req_type</span>, 449 <span class="sig-arg">sleep</span>, 450 <span class="sig-arg">rand</span>, 451 <span class="sig-arg">uri</span>, 452 <span class="sig-arg">method</span>, 453 <span class="sig-arg">*args</span>, 454 <span class="sig-arg">**kwargs</span>)</span> 455 </h3> 456 </td><td align="right" valign="top" 457 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#_retry_request">source code</a></span> 458 </td> 459 </tr></table> 460 461 <pre class="literalblock"> 462Retries an HTTP request multiple times while handling errors. 463 464If after all retries the request still fails, last error is either returned as 465return value (for HTTP 5xx errors) or thrown (for ssl.SSLError). 466 467Args: 468 http: Http object to be used to execute request. 469 num_retries: Maximum number of retries. 470 req_type: Type of the request (used for logging retries). 471 sleep, rand: Functions to sleep for random time between retries. 472 uri: URI to be requested. 473 method: HTTP method to be used. 474 args, kwargs: Additional arguments passed to http.request. 475 476Returns: 477 resp, content - Response from the http request (may be HTTP 5xx). 478 479</pre> 480 <dl class="fields"> 481 </dl> 482</td></tr></table> 483</div> 484<a name="set_user_agent"></a> 485<div> 486<table class="details" border="1" cellpadding="3" 487 cellspacing="0" width="100%" bgcolor="white"> 488<tr><td> 489 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 490 <tr valign="top"><td> 491 <h3 class="epydoc"><span class="sig"><span class="sig-name">set_user_agent</span>(<span class="sig-arg">http</span>, 492 <span class="sig-arg">user_agent</span>)</span> 493 </h3> 494 </td><td align="right" valign="top" 495 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#set_user_agent">source code</a></span> 496 </td> 497 </tr></table> 498 499 <pre class="literalblock"> 500Set the user-agent on every request. 501 502Args: 503 http - An instance of httplib2.Http 504 or something that acts like it. 505 user_agent: string, the value for the user-agent header. 506 507Returns: 508 A modified instance of http that was passed in. 509 510Example: 511 512 h = httplib2.Http() 513 h = set_user_agent(h, "my-app-name/6.0") 514 515Most of the time the user-agent will be set doing auth, this is for the rare 516cases where you are accessing an unauthenticated endpoint. 517 518</pre> 519 <dl class="fields"> 520 </dl> 521</td></tr></table> 522</div> 523<a name="tunnel_patch"></a> 524<div> 525<table class="details" border="1" cellpadding="3" 526 cellspacing="0" width="100%" bgcolor="white"> 527<tr><td> 528 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 529 <tr valign="top"><td> 530 <h3 class="epydoc"><span class="sig"><span class="sig-name">tunnel_patch</span>(<span class="sig-arg">http</span>)</span> 531 </h3> 532 </td><td align="right" valign="top" 533 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#tunnel_patch">source code</a></span> 534 </td> 535 </tr></table> 536 537 <pre class="literalblock"> 538Tunnel PATCH requests over POST. 539Args: 540 http - An instance of httplib2.Http 541 or something that acts like it. 542 543Returns: 544 A modified instance of http that was passed in. 545 546Example: 547 548 h = httplib2.Http() 549 h = tunnel_patch(h, "my-app-name/6.0") 550 551Useful if you are running on a platform that doesn't support PATCH. 552Apply this last if you are using OAuth 1.0, as changing the method 553will result in a different signature. 554 555</pre> 556 <dl class="fields"> 557 </dl> 558</td></tr></table> 559</div> 560<a name="build_http"></a> 561<div> 562<table class="details" border="1" cellpadding="3" 563 cellspacing="0" width="100%" bgcolor="white"> 564<tr><td> 565 <table width="100%" cellpadding="0" cellspacing="0" border="0"> 566 <tr valign="top"><td> 567 <h3 class="epydoc"><span class="sig"><span class="sig-name">build_http</span>()</span> 568 </h3> 569 </td><td align="right" valign="top" 570 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#build_http">source code</a></span> 571 </td> 572 </tr></table> 573 574 <pre class="literalblock"> 575Builds httplib2.Http object 576 577Returns: 578A httplib2.Http object, which is used to make http requests, and which has timeout set by default. 579To override default timeout call 580 581 socket.setdefaulttimeout(timeout_in_sec) 582 583before interacting with this method. 584 585</pre> 586 <dl class="fields"> 587 </dl> 588</td></tr></table> 589</div> 590<br /> 591<!-- ==================== NAVIGATION BAR ==================== --> 592<table class="navbar" border="0" width="100%" cellpadding="0" 593 bgcolor="#a0c0ff" cellspacing="0"> 594 <tr valign="middle"> 595 <!-- Home link --> 596 <th> <a 597 href="googleapiclient-module.html">Home</a> </th> 598 599 <!-- Tree link --> 600 <th> <a 601 href="module-tree.html">Trees</a> </th> 602 603 <!-- Index link --> 604 <th> <a 605 href="identifier-index.html">Indices</a> </th> 606 607 <!-- Help link --> 608 <th> <a 609 href="help.html">Help</a> </th> 610 611 <th class="navbar" width="100%"></th> 612 </tr> 613</table> 614<table border="0" cellpadding="0" cellspacing="0" width="100%%"> 615 <tr> 616 <td align="left" class="footer"> 617 Generated by Epydoc 3.0.1 on Fri Oct 2 20:46:22 2020 618 </td> 619 <td align="right" class="footer"> 620 <a target="mainFrame" href="http://epydoc.sourceforge.net" 621 >http://epydoc.sourceforge.net</a> 622 </td> 623 </tr> 624</table> 625 626<script type="text/javascript"> 627 <!-- 628 // Private objects are initially displayed (because if 629 // javascript is turned off then we want them to be 630 // visible); but by default, we want to hide them. So hide 631 // them unless we have a cookie that says to show them. 632 checkCookie(); 633 // --> 634</script> 635</body> 636</html> 637