twisted.protocols.irc.IRC.html [plain text]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>twisted.protocols.irc.IRC</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="twisted.html">Package twisted</a> ::
<a href="twisted.protocols.html">Package protocols</a> ::
<a href="twisted.protocols.irc.html">Module irc</a> ::
Class IRC
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="twisted.protocols.irc.IRC.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class IRC</h2>
<pre class="base-tree">
<a href="twisted.internet.protocol.BaseProtocol.html"><code>BaseProtocol</code></a> --+
|
<a href="twisted.internet.protocol.Protocol.html"><code>Protocol</code></a> --+
|
<b>IRC</b>
</pre><br />
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.words.ircservice.IRCChatter.html"><code>IRCChatter</code></a>,
<a href="twisted.im.proxyui.IRCUserInterface.html"><code>IRCUserInterface</code></a></dd></dl>
<hr/>
Internet Relay Chat server protocol.
<hr/>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#action" class="summary-sig-name"><code>action</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>sender</span>,
<span class=summary-sig-arg>recip</span>,
<span class=summary-sig-arg>message</span>)</span></code>
<br />
Send an action to a channel or user.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#connectionMade" class="summary-sig-name"><code>connectionMade</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when a connection is made.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#dataReceived" class="summary-sig-name"><code>dataReceived</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>data</span>)</span></code>
<br />
This hack is to support mIRC, which sends LF only, even though the RFC
says CRLF.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#handleCommand" class="summary-sig-name"><code>handleCommand</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>command</span>,
<span class=summary-sig-arg>prefix</span>,
<span class=summary-sig-arg>params</span>)</span></code>
<br />
Determine the function to call for the given command and call it with
the given arguments.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#irc_unknown" class="summary-sig-name"><code>irc_unknown</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>prefix</span>,
<span class=summary-sig-arg>command</span>,
<span class=summary-sig-arg>params</span>)</span></code>
<br />
Implement me!</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>who</span>,
<span class=summary-sig-arg>where</span>)</span></code>
<br />
Send a join message.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#names" class="summary-sig-name"><code>names</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>user</span>,
<span class=summary-sig-arg>channel</span>,
<span class=summary-sig-arg>names</span>)</span></code>
<br />
Send the names of a channel's participants to a user.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#notice" class="summary-sig-name"><code>notice</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>sender</span>,
<span class=summary-sig-arg>recip</span>,
<span class=summary-sig-arg>message</span>)</span></code>
<br />
Send a "notice" to a channel or user.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#part" class="summary-sig-name"><code>part</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>who</span>,
<span class=summary-sig-arg>where</span>)</span></code>
<br />
Send a part message.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#privmsg" class="summary-sig-name"><code>privmsg</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>sender</span>,
<span class=summary-sig-arg>recip</span>,
<span class=summary-sig-arg>message</span>)</span></code>
<br />
Send a message to a channel or user</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="sendLine"></a><span class="summary-sig"><span class="summary-sig-name">sendLine</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#sendMessage" class="summary-sig-name"><code>sendMessage</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>command</span>,
<span class="summary-sig-vararg">*parameter_list</span>,
<span class="summary-sig-kwarg">**prefix</span>)</span></code>
<br />
Send a line formatted as an IRC message.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.irc.IRC.html#topic" class="summary-sig-name"><code>topic</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>user</span>,
<span class=summary-sig-arg>channel</span>,
<span class=summary-sig-arg>topic</span>,
<span class=summary-sig-arg>author</span>)</span></code>
<br />
Send the topic to a user.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Protocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Protocol.html#connectionFailed" class="summary-sig-name"><code>connectionFailed</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
(Deprecated)</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Protocol.html#connectionLost" class="summary-sig-name"><code>connectionLost</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>reason</span>)</span></code>
<br />
Called when the connection is shut down.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from BaseProtocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.BaseProtocol.html#makeConnection" class="summary-sig-name"><code>makeConnection</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>transport</span>)</span></code>
<br />
Make a connection to a transport and a server.</td></tr>
</table><br />
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.irc.IRC.html#buffer"><code>buffer</code></a></b> = <span title="''"><code><span class="variable-quote">'</span><span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.irc.IRC.html#hostname"><code>hostname</code></a></b> = <span title="None">None </span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Protocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.internet.protocol.Protocol.html#__implements__"><code>__implements__</code></a></b> = <span title="(<class twisted.internet.interfaces.IProtocol at 0x8278f0c>,)"><code>(<class twisted.internet.interfaces.IPr<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from BaseProtocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.BaseProtocol.html#connected"><code>connected</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.BaseProtocol.html#transport"><code>transport</code></a></b> = <span title="None">None </span></td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="action"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">action</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>sender</span>,
<span class=sig-arg>recip</span>,
<span class=sig-arg>message</span>)</span>
</h3>
Send an action to a channel or user.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>sender</b></code> -
Who is sending this message. Should be of the form
username!ident@hostmask (unless you know better!).
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>recip</b></code> -
The recipient of this message. If a channel, it must start
with a channel prefix.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>message</b></code> -
The action being sent.
<br /><i>
(type=<code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="connectionMade"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">connectionMade</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Called when a connection is made.</p>
This may be considered the initializer of the protocol, because it
is called when the connection is completed. For clients, this is called
once the connection to the server has been established; for servers,
this is called after an accept() call stops blocking and a socket has
been received. If you need to send any greeting or initial message, do
it here.
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.internet.protocol.BaseProtocol.html#connectionMade"><code>twisted.internet.protocol.BaseProtocol.connectionMade</code></a> <i>(inherited documentation)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="dataReceived"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">dataReceived</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>data</span>)</span>
</h3>
This hack is to support mIRC, which sends LF only, even though the
RFC says CRLF. (Also, the flexibility of LineReceiver to turn
"line mode" on and off was not required.)
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.internet.protocol.Protocol.html#dataReceived"><code>twisted.internet.protocol.Protocol.dataReceived</code></a></dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="handleCommand"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">handleCommand</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>command</span>,
<span class=sig-arg>prefix</span>,
<span class=sig-arg>params</span>)</span>
</h3>
Determine the function to call for the given command and call it
with the given arguments.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="irc_unknown"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">irc_unknown</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>prefix</span>,
<span class=sig-arg>command</span>,
<span class=sig-arg>params</span>)</span>
</h3>
Implement me!
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="join"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">join</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>who</span>,
<span class=sig-arg>where</span>)</span>
</h3>
Send a join message.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>who</b></code> -
The name of the user joining. Should be of the form
username!ident@hostmask (unless you know better!).
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>where</b></code> -
The channel the user is joining.
<br /><i>
(type=<code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="names"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">names</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>user</span>,
<span class=sig-arg>channel</span>,
<span class=sig-arg>names</span>)</span>
</h3>
Send the names of a channel's participants to a user.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>user</b></code> -
The user receiving the topic. Only their nick name, not the
full hostmask.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>channel</b></code> -
The channel for which this is the topic.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>names</b></code> -
The names to send.
<br /><i>
(type=<code>list</code> of <code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="notice"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">notice</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>sender</span>,
<span class=sig-arg>recip</span>,
<span class=sig-arg>message</span>)</span>
</h3>
<p>Send a "notice" to a channel or user.</p>
Notices differ from privmsgs in that the RFC claims they are
different. Robots are supposed to send notices and not respond to them.
Clients typically display notices differently from privmsgs.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>sender</b></code> -
Who is sending this message. Should be of the form
username!ident@hostmask (unless you know better!).
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>recip</b></code> -
The recipient of this message. If a channel, it must start
with a channel prefix.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>message</b></code> -
The message being sent.
<br /><i>
(type=<code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="part"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">part</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>who</span>,
<span class=sig-arg>where</span>)</span>
</h3>
Send a part message.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>who</b></code> -
The name of the user joining. Should be of the form
username!ident@hostmask (unless you know better!).
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>where</b></code> -
The channel the user is joining.
<br /><i>
(type=<code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="privmsg"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">privmsg</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>sender</span>,
<span class=sig-arg>recip</span>,
<span class=sig-arg>message</span>)</span>
</h3>
Send a message to a channel or user
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>sender</b></code> -
Who is sending this message. Should be of the form
username!ident@hostmask (unless you know better!).
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>recip</b></code> -
The recipient of this message. If a channel, it must start
with a channel prefix.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>message</b></code> -
The message being sent.
<br /><i>
(type=<code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="sendMessage"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">sendMessage</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>command</span>,
<span class="sig-vararg">*parameter_list</span>,
<span class="sig-kwarg">**prefix</span>)</span>
</h3>
<p>Send a line formatted as an IRC message.</p>
First argument is the command, all subsequent arguments are
parameters to that command. If a prefix is desired, it may be specified
with the keyword argument 'prefix'.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="topic"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">topic</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>user</span>,
<span class=sig-arg>channel</span>,
<span class=sig-arg>topic</span>,
<span class=sig-arg>author</span>=<span class=sig-default>None</span>)</span>
</h3>
Send the topic to a user.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>user</b></code> -
The user receiving the topic. Only their nick name, not the
full hostmask.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>channel</b></code> -
The channel for which this is the topic.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>topic</b></code> -
The topic string.
<br /><i>
(type=<code>str</code>)</i>
<dd><code><b>author</b></code> -
If the topic is being changed, the full username and hostmask
of the person changing it.
<br /><i>
(type=<code>str</code>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="buffer"></a>
<h3>buffer</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="''"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span><span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="hostname"></a>
<h3>hostname</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:50 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>