Playing with sphinx formatting

This commit is contained in:
Michael P. Soulier 2010-07-12 05:46:16 -04:00
parent 1caa220a9a
commit 74f6756671
9 changed files with 170 additions and 112 deletions

View file

@ -16,7 +16,6 @@ import sys, os
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.append(os.path.abspath('.'))
sys.path.append(os.path.abspath('..'))
# -- General configuration -----------------------------------------------------

View file

@ -3,21 +3,29 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to TFTPy's documentation!
=================================
TFTPy
=====
Contents:
TFTPy is a pure python TFTP implementation.
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Requirements
============
Python 2.3+, I think. I haven't tested in Python 2.3 in a while but it should
still work. Let me know if it doesn't.
Installation
============
Examples
========
API Documentation
=================
@ -26,40 +34,47 @@ Front-end Modules
These modules are the ones that you will need to use directly to implement a
TFTP client or server.
TFTPy Module
~~~~~~~~~~~~
The :mod:`tftpy` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy
:members:
:show-inheritance:
tftpy.TftpClient
~~~~~~~~~~~~~~~~
The `TftpClient` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpClient
:members:
:show-inheritance:
tftpy.TftpServer
~~~~~~~~~~~~~~~~
The `TftpServer` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpServer
:members:
:show-inheritance:
Back-end Modules
----------------
tftpy.TftpPacketFactory
~~~~~~~~~~~~~~~~~~~~~~~
The `TftpPacketFactory` Module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpPacketFactory
:members:
:show-inheritance:
tftpy.TftpPacketTypes
~~~~~~~~~~~~~~~~~~~~~
The `TftpPacketTypes` Module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpPacketTypes
:members:
:show-inheritance:
tftpy.TftpShared
~~~~~~~~~~~~~~~~
The `TftpShared` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpShared
:members:
:show-inheritance:
tftpy.TftpStates
~~~~~~~~~~~~~~~~
The `TftpStates` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpStates
:members:
:show-inheritance:

View file

@ -3,21 +3,29 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to TFTPy's documentation!
=================================
TFTPy
=====
Contents:
TFTPy is a pure python TFTP implementation.
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Requirements
============
Python 2.3+, I think. I haven't tested in Python 2.3 in a while but it should
still work. Let me know if it doesn't.
Installation
============
Examples
========
API Documentation
=================
@ -26,40 +34,47 @@ Front-end Modules
These modules are the ones that you will need to use directly to implement a
TFTP client or server.
TFTPy Module
~~~~~~~~~~~~
The :mod:`tftpy` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy
:members:
:show-inheritance:
tftpy.TftpClient
~~~~~~~~~~~~~~~~
The `TftpClient` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpClient
:members:
:show-inheritance:
tftpy.TftpServer
~~~~~~~~~~~~~~~~
The `TftpServer` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpServer
:members:
:show-inheritance:
Back-end Modules
----------------
tftpy.TftpPacketFactory
~~~~~~~~~~~~~~~~~~~~~~~
The `TftpPacketFactory` Module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpPacketFactory
:members:
:show-inheritance:
tftpy.TftpPacketTypes
~~~~~~~~~~~~~~~~~~~~~
The `TftpPacketTypes` Module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpPacketTypes
:members:
:show-inheritance:
tftpy.TftpShared
~~~~~~~~~~~~~~~~
The `TftpShared` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpShared
:members:
:show-inheritance:
tftpy.TftpStates
~~~~~~~~~~~~~~~~
The `TftpStates` Module
~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: tftpy.TftpStates
:members:
:show-inheritance:

View file

@ -166,18 +166,6 @@ div.admonition p.admonition-title + p {
display: inline;
}
div.admonition p {
margin-bottom: 5px;
}
div.admonition pre {
margin-bottom: 5px;
}
div.admonition ul, div.admonition ol {
margin-bottom: 5px;
}
div.note {
background-color: #eee;
border: 1px solid #ccc;

View file

@ -255,7 +255,7 @@
</div>
<div class="footer">
&copy; Copyright 2010, Michael P. Soulier.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.5.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
</div>
</body>
</html>

View file

@ -5,7 +5,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome to TFTPys documentation! &mdash; TFTPy v0.5.1 documentation</title>
<title>TFTPy &mdash; TFTPy v0.5.1 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
@ -40,20 +40,28 @@
<div class="bodywrapper">
<div class="body">
<div class="section" id="welcome-to-tftpy-s-documentation">
<h1>Welcome to TFTPy&#8217;s documentation!<a class="headerlink" href="#welcome-to-tftpy-s-documentation" title="Permalink to this headline"></a></h1>
<p>Contents:</p>
<div class="section" id="tftpy">
<h1>TFTPy<a class="headerlink" href="#tftpy" title="Permalink to this headline"></a></h1>
<p>TFTPy is a pure python TFTP implementation.</p>
<ul class="simple">
</ul>
</div>
<div class="section" id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li><a class="reference external" href="genindex.html"><em>Index</em></a></li>
<li><a class="reference external" href="modindex.html"><em>Module Index</em></a></li>
<li><a class="reference external" href="search.html"><em>Search Page</em></a></li>
</ul>
</div>
<div class="section" id="requirements">
<h1>Requirements<a class="headerlink" href="#requirements" title="Permalink to this headline"></a></h1>
<p>Python 2.3+, I think. I haven&#8217;t tested in Python 2.3 in a while but it should
still work. Let me know if it doesn&#8217;t.</p>
</div>
<div class="section" id="installation">
<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline"></a></h1>
</div>
<div class="section" id="examples">
<h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h1>
</div>
<div class="section" id="api-documentation">
<h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this headline"></a></h1>
<div class="section" id="front-end-modules">
@ -61,7 +69,7 @@
<p>These modules are the ones that you will need to use directly to implement a
TFTP client or server.</p>
<div class="section" id="module-tftpy">
<h3>TFTPy Module<a class="headerlink" href="#module-tftpy" title="Permalink to this headline"></a></h3>
<h3>The <tt class="xref docutils literal"><span class="pre">tftpy</span></tt> Module<a class="headerlink" href="#module-tftpy" title="Permalink to this headline"></a></h3>
<p>This library implements the tftp protocol, based on rfc 1350.
<a class="reference external" href="http://www.faqs.org/rfcs/rfc1350.html">http://www.faqs.org/rfcs/rfc1350.html</a>
At the moment it implements only a client class, but will include a server,
@ -70,14 +78,15 @@ with support for variable block sizes.</p>
directly. The TftpClient and TftpServer classes can be reached through it.</p>
</div>
<div class="section" id="module-tftpy.TftpClient">
<h3>tftpy.TftpClient<a class="headerlink" href="#module-tftpy.TftpClient" title="Permalink to this headline"></a></h3>
<h3>The <cite>TftpClient</cite> Module<a class="headerlink" href="#module-tftpy.TftpClient" title="Permalink to this headline"></a></h3>
<p>This module implements the TFTP Client functionality. Instantiate an
instance of the client, and then use its upload or download method. Logging is
performed via a standard logging object set in TftpShared.</p>
<dl class="class">
<dt id="tftpy.TftpClient.TftpClient">
<em class="property">class </em><tt class="descclassname">tftpy.TftpClient.</tt><tt class="descname">TftpClient</tt><big>(</big><em>host</em>, <em>port</em>, <em>options={}</em><big>)</big><a class="headerlink" href="#tftpy.TftpClient.TftpClient" title="Permalink to this definition"></a></dt>
<dd><p>This class is an implementation of a tftp client. Once instantiated, a
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpSession" class="reference internal" href="#tftpy.TftpPacketTypes.TftpSession"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpSession</span></tt></a></p>
<p>This class is an implementation of a tftp client. Once instantiated, a
download can be initiated via the download() method, or an upload via the
upload() method.</p>
<dl class="method">
@ -111,7 +120,7 @@ DAT packet to be ACKd by the server.</p>
</div>
<div class="section" id="module-tftpy.TftpServer">
<h3>tftpy.TftpServer<a class="headerlink" href="#module-tftpy.TftpServer" title="Permalink to this headline"></a></h3>
<h3>The <cite>TftpServer</cite> Module<a class="headerlink" href="#module-tftpy.TftpServer" title="Permalink to this headline"></a></h3>
<p>This module implements the TFTP Server functionality. Instantiate an
instance of the server, and then run the listen() method to listen for client
requests. Logging is performed via a standard logging object set in
@ -119,7 +128,8 @@ TftpShared.</p>
<dl class="class">
<dt id="tftpy.TftpServer.TftpServer">
<em class="property">class </em><tt class="descclassname">tftpy.TftpServer.</tt><tt class="descname">TftpServer</tt><big>(</big><em>tftproot='/tftpboot'</em>, <em>dyn_file_func=None</em><big>)</big><a class="headerlink" href="#tftpy.TftpServer.TftpServer" title="Permalink to this definition"></a></dt>
<dd><p>This class implements a tftp server object. Run the listen() method to
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpSession" class="reference internal" href="#tftpy.TftpPacketTypes.TftpSession"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpSession</span></tt></a></p>
<p>This class implements a tftp server object. Run the listen() method to
listen for client requests. It takes two optional arguments. tftproot is
the path to the tftproot directory to serve files from and/or write them
to. dyn_file_func is a callable that must return a file-like object to
@ -139,14 +149,15 @@ supply a different socket timeout value, if desired.</dd></dl>
<div class="section" id="back-end-modules">
<h2>Back-end Modules<a class="headerlink" href="#back-end-modules" title="Permalink to this headline"></a></h2>
<div class="section" id="module-tftpy.TftpPacketFactory">
<h3>tftpy.TftpPacketFactory<a class="headerlink" href="#module-tftpy.TftpPacketFactory" title="Permalink to this headline"></a></h3>
<h3>The <cite>TftpPacketFactory</cite> Module<a class="headerlink" href="#module-tftpy.TftpPacketFactory" title="Permalink to this headline"></a></h3>
<p>This module implements the TftpPacketFactory class, which can take a binary
buffer, and return the appropriate TftpPacket object to represent it, via the
parse() method.</p>
<dl class="class">
<dt id="tftpy.TftpPacketFactory.TftpPacketFactory">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketFactory.</tt><tt class="descname">TftpPacketFactory</tt><a class="headerlink" href="#tftpy.TftpPacketFactory.TftpPacketFactory" title="Permalink to this definition"></a></dt>
<dd><p>This class generates TftpPacket objects. It is responsible for parsing
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>This class generates TftpPacket objects. It is responsible for parsing
raw buffers off of the wire and returning objects representing them, via
the parse() method.</p>
<dl class="method">
@ -160,13 +171,14 @@ the network.</dd></dl>
</div>
<div class="section" id="module-tftpy.TftpPacketTypes">
<h3>tftpy.TftpPacketTypes<a class="headerlink" href="#module-tftpy.TftpPacketTypes" title="Permalink to this headline"></a></h3>
<h3>The <cite>TftpPacketTypes</cite> Module<a class="headerlink" href="#module-tftpy.TftpPacketTypes" title="Permalink to this headline"></a></h3>
<p>This module implements the packet types of TFTP itself, and the
corresponding encode and decode methods for them.</p>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacket">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacket</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacket" title="Permalink to this definition"></a></dt>
<dd><p>This class is the parent class of all tftp packet classes. It is an
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>This class is the parent class of all tftp packet classes. It is an
abstract class, providing an interface, and should not be instantiated
directly.</p>
<dl class="method">
@ -194,7 +206,8 @@ order suitable for sending over the wire.</p>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketACK">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketACK</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketACK" title="Permalink to this definition"></a></dt>
<dd><div class="highlight-python"><pre> 2 bytes 2 bytes
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacket" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a></p>
<div class="highlight-python"><pre> 2 bytes 2 bytes
-------------------
ACK | 04 | Block # |
--------------------</pre>
@ -204,7 +217,8 @@ ACK | 04 | Block # |
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketDAT">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketDAT</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketDAT" title="Permalink to this definition"></a></dt>
<dd><div class="highlight-python"><pre> 2 bytes 2 bytes n bytes
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacket" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a></p>
<div class="highlight-python"><pre> 2 bytes 2 bytes n bytes
---------------------------------
DATA | 03 | Block # | Data |
---------------------------------</pre>
@ -226,7 +240,8 @@ returns self for easy method chaining.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketERR">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketERR</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketERR" title="Permalink to this definition"></a></dt>
<dd><div class="highlight-python"><pre> 2 bytes 2 bytes string 1 byte
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacket" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a></p>
<div class="highlight-python"><pre> 2 bytes 2 bytes string 1 byte
----------------------------------------
ERROR | 05 | ErrorCode | ErrMsg | 0 |
----------------------------------------
@ -261,7 +276,8 @@ self.buffer, returning self.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketInitial">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketInitial</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketInitial" title="Permalink to this definition"></a></dt>
<dd><p>This class is a common parent class for the RRQ and WRQ packets, as
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacket" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a>, <a title="tftpy.TftpPacketTypes.TftpPacketWithOptions" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketWithOptions</span></tt></a></p>
<p>This class is a common parent class for the RRQ and WRQ packets, as
they share quite a bit of code.</p>
<dl class="method">
<dt id="tftpy.TftpPacketTypes.TftpPacketInitial.encode">
@ -273,7 +289,8 @@ they share quite a bit of code.</p>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketOACK">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketOACK</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketOACK" title="Permalink to this definition"></a></dt>
<dd><div class="highlight-python"><pre>+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacket" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a>, <a title="tftpy.TftpPacketTypes.TftpPacketWithOptions" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketWithOptions</span></tt></a></p>
<div class="highlight-python"><pre>+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
| opc | opt1 | 0 | value1 | 0 | optN | 0 | valueN | 0 |
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+</pre>
</div>
@ -291,7 +308,8 @@ options.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketRRQ">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketRRQ</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketRRQ" title="Permalink to this definition"></a></dt>
<dd><div class="highlight-python"><pre> 2 bytes string 1 byte string 1 byte
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacketInitial" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketInitial"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketInitial</span></tt></a></p>
<div class="highlight-python"><pre> 2 bytes string 1 byte string 1 byte
-----------------------------------------------
RRQ/ | 01/02 | Filename | 0 | Mode | 0 |
WRQ -----------------------------------------------</pre>
@ -301,7 +319,8 @@ WRQ -----------------------------------------------</pre>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketWRQ">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketWRQ</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketWRQ" title="Permalink to this definition"></a></dt>
<dd><div class="highlight-python"><pre> 2 bytes string 1 byte string 1 byte
<dd><p>Bases: <a title="tftpy.TftpPacketTypes.TftpPacketInitial" class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketInitial"><tt class="xref docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketInitial</span></tt></a></p>
<div class="highlight-python"><pre> 2 bytes string 1 byte string 1 byte
-----------------------------------------------
RRQ/ | 01/02 | Filename | 0 | Mode | 0 |
WRQ -----------------------------------------------</pre>
@ -311,7 +330,8 @@ WRQ -----------------------------------------------</pre>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpPacketWithOptions">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketWithOptions</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions" title="Permalink to this definition"></a></dt>
<dd><p>This class exists to permit some TftpPacket subclasses to share code
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>This class exists to permit some TftpPacket subclasses to share code
regarding options handling. It does not inherit from TftpPacket, as the
goal is just to share code here, and not cause diamond inheritance.</p>
<dl class="method">
@ -326,24 +346,30 @@ values.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpPacketTypes.TftpSession">
<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpSession</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpSession" title="Permalink to this definition"></a></dt>
<dd>This class is the base class for the tftp client and server. Any shared
code should be in this class.</dd></dl>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>This class is the base class for the tftp client and server. Any shared
code should be in this class.</p>
</dd></dl>
</div>
<div class="section" id="module-tftpy.TftpShared">
<h3>tftpy.TftpShared<a class="headerlink" href="#module-tftpy.TftpShared" title="Permalink to this headline"></a></h3>
<h3>The <cite>TftpShared</cite> Module<a class="headerlink" href="#module-tftpy.TftpShared" title="Permalink to this headline"></a></h3>
<p>This module holds all objects shared by all other modules in tftpy.</p>
<dl class="class">
<dt id="tftpy.TftpShared.TftpErrors">
<em class="property">class </em><tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">TftpErrors</tt><a class="headerlink" href="#tftpy.TftpShared.TftpErrors" title="Permalink to this definition"></a></dt>
<dd>This class is a convenience for defining the common tftp error codes,
and making them more readable in the code.</dd></dl>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>This class is a convenience for defining the common tftp error codes,
and making them more readable in the code.</p>
</dd></dl>
<dl class="exception">
<dt id="tftpy.TftpShared.TftpException">
<em class="property">exception </em><tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">TftpException</tt><a class="headerlink" href="#tftpy.TftpShared.TftpException" title="Permalink to this definition"></a></dt>
<dd>This class is the parent class of all exceptions regarding the handling
of the TFTP protocol.</dd></dl>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">exceptions.Exception</span></tt></p>
<p>This class is the parent class of all exceptions regarding the handling
of the TFTP protocol.</p>
</dd></dl>
<dl class="function">
<dt id="tftpy.TftpShared.setLogLevel">
@ -362,7 +388,7 @@ by refactoring.</dd></dl>
</div>
<div class="section" id="module-tftpy.TftpStates">
<h3>tftpy.TftpStates<a class="headerlink" href="#module-tftpy.TftpStates" title="Permalink to this headline"></a></h3>
<h3>The <cite>TftpStates</cite> Module<a class="headerlink" href="#module-tftpy.TftpStates" title="Permalink to this headline"></a></h3>
<p>This module implements all state handling during uploads and downloads, the
main interface to which being the TftpContext base class and the TftpState
base class.</p>
@ -375,7 +401,8 @@ error, in which case a TftpException is returned instead.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpContext">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpContext</tt><big>(</big><em>host</em>, <em>port</em>, <em>timeout</em>, <em>dyn_file_func=None</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpContext" title="Permalink to this definition"></a></dt>
<dd><p>The base class of the contexts.</p>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>The base class of the contexts.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpContext.checkTimeout">
<tt class="descname">checkTimeout</tt><big>(</big><em>now</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpContext.checkTimeout" title="Permalink to this definition"></a></dt>
@ -416,7 +443,8 @@ of the host that is set.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpStates.TftpContextClientDownload">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpContextClientDownload</tt><big>(</big><em>host</em>, <em>port</em>, <em>filename</em>, <em>output</em>, <em>options</em>, <em>packethook</em>, <em>timeout</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpContextClientDownload" title="Permalink to this definition"></a></dt>
<dd><p>The download context for the client during a download.
<dd><p>Bases: <a title="tftpy.TftpStates.TftpContext" class="reference internal" href="#tftpy.TftpStates.TftpContext"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpContext</span></tt></a></p>
<p>The download context for the client during a download.
Note: If output is a hyphen, then the output will be sent to stdout.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpContextClientDownload.end">
@ -433,7 +461,8 @@ Note: If output is a hyphen, then the output will be sent to stdout.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpContextClientUpload">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpContextClientUpload</tt><big>(</big><em>host</em>, <em>port</em>, <em>filename</em>, <em>input</em>, <em>options</em>, <em>packethook</em>, <em>timeout</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpContextClientUpload" title="Permalink to this definition"></a></dt>
<dd><p>The upload context for the client during an upload.
<dd><p>Bases: <a title="tftpy.TftpStates.TftpContext" class="reference internal" href="#tftpy.TftpStates.TftpContext"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpContext</span></tt></a></p>
<p>The upload context for the client during an upload.
Note: If input is a hyphen, then we will use stdin.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpContextClientUpload.end">
@ -445,7 +474,8 @@ Note: If input is a hyphen, then we will use stdin.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpContextServer">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpContextServer</tt><big>(</big><em>host</em>, <em>port</em>, <em>timeout</em>, <em>root</em>, <em>dyn_file_func=None</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpContextServer" title="Permalink to this definition"></a></dt>
<dd><p>The context for the server.</p>
<dd><p>Bases: <a title="tftpy.TftpStates.TftpContext" class="reference internal" href="#tftpy.TftpStates.TftpContext"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpContext</span></tt></a></p>
<p>The context for the server.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpContextServer.end">
<tt class="descname">end</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpContextServer.end" title="Permalink to this definition"></a></dt>
@ -464,7 +494,8 @@ that.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpStates.TftpMetrics">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpMetrics</tt><a class="headerlink" href="#tftpy.TftpStates.TftpMetrics" title="Permalink to this definition"></a></dt>
<dd><p>A class representing metrics of the transfer.</p>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>A class representing metrics of the transfer.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpMetrics.add_dup">
<tt class="descname">add_dup</tt><big>(</big><em>blocknumber</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpMetrics.add_dup" title="Permalink to this definition"></a></dt>
@ -475,7 +506,8 @@ that.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpStates.TftpState">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpState</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState" title="Permalink to this definition"></a></dt>
<dd><p>The base class for the states.</p>
<dd><p>Bases: <tt class="xref docutils literal"><span class="pre">object</span></tt></p>
<p>The base class for the states.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpState.handle">
<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.handle" title="Permalink to this definition"></a></dt>
@ -540,7 +572,8 @@ it is required to send an OACK to the client.</dd></dl>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateExpectACK">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateExpectACK</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectACK" title="Permalink to this definition"></a></dt>
<dd><p>This class represents the state of the transfer when a DAT was just
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>This class represents the state of the transfer when a DAT was just
sent, and we are waiting for an ACK from the server. This class is the
same one used by the client during the upload, and the server during the
download.</p>
@ -554,7 +587,8 @@ download.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateExpectDAT">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateExpectDAT</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectDAT" title="Permalink to this definition"></a></dt>
<dd><p>Just sent an ACK packet. Waiting for DAT.</p>
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>Just sent an ACK packet. Waiting for DAT.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpStateExpectDAT.handle">
<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectDAT.handle" title="Permalink to this definition"></a></dt>
@ -565,7 +599,8 @@ download.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateSentRRQ">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateSentRRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentRRQ" title="Permalink to this definition"></a></dt>
<dd><p>Just sent an RRQ packet.</p>
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>Just sent an RRQ packet.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpStateSentRRQ.handle">
<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentRRQ.handle" title="Permalink to this definition"></a></dt>
@ -576,7 +611,8 @@ download.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateSentWRQ">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateSentWRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentWRQ" title="Permalink to this definition"></a></dt>
<dd><p>Just sent an WRQ packet for an upload.</p>
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>Just sent an WRQ packet for an upload.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpStateSentWRQ.handle">
<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentWRQ.handle" title="Permalink to this definition"></a></dt>
@ -587,7 +623,8 @@ download.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateServerRecvRRQ">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateServerRecvRRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvRRQ" title="Permalink to this definition"></a></dt>
<dd><p>This class represents the state of the TFTP server when it has just
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>This class represents the state of the TFTP server when it has just
received an RRQ packet.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpStateServerRecvRRQ.handle">
@ -599,7 +636,8 @@ received an RRQ packet.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateServerRecvWRQ">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateServerRecvWRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvWRQ" title="Permalink to this definition"></a></dt>
<dd><p>This class represents the state of the TFTP server when it has just
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>This class represents the state of the TFTP server when it has just
received a WRQ packet.</p>
<dl class="method">
<dt id="tftpy.TftpStates.TftpStateServerRecvWRQ.handle">
@ -611,7 +649,8 @@ received a WRQ packet.</p>
<dl class="class">
<dt id="tftpy.TftpStates.TftpStateServerStart">
<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateServerStart</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerStart" title="Permalink to this definition"></a></dt>
<dd><p>The start state for the server. This is a transitory state since at
<dd><p>Bases: <a title="tftpy.TftpStates.TftpState" class="reference internal" href="#tftpy.TftpStates.TftpState"><tt class="xref docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p>
<p>The start state for the server. This is a transitory state since at
this point we don&#8217;t know if we&#8217;re handling an upload or a download. We
will commit to one of them once we interpret the initial packet.</p>
<dl class="method">
@ -633,22 +672,24 @@ will commit to one of them once we interpret the initial packet.</p>
<div class="sphinxsidebarwrapper">
<h3><a href="#">Table Of Contents</a></h3>
<ul>
<li><a class="reference external" href="#">Welcome to TFTPy&#8217;s documentation!</a><ul>
<li><a class="reference external" href="#">TFTPy</a><ul>
</ul>
</li>
<li><a class="reference external" href="#indices-and-tables">Indices and tables</a></li>
<li><a class="reference external" href="#requirements">Requirements</a></li>
<li><a class="reference external" href="#installation">Installation</a></li>
<li><a class="reference external" href="#examples">Examples</a></li>
<li><a class="reference external" href="#api-documentation">API Documentation</a><ul>
<li><a class="reference external" href="#front-end-modules">Front-end Modules</a><ul>
<li><a class="reference external" href="#module-tftpy">TFTPy Module</a></li>
<li><a class="reference external" href="#module-tftpy.TftpClient">tftpy.TftpClient</a></li>
<li><a class="reference external" href="#module-tftpy.TftpServer">tftpy.TftpServer</a></li>
<li><a class="reference external" href="#module-tftpy">The <tt class="docutils literal"><span class="pre">tftpy</span></tt> Module</a></li>
<li><a class="reference external" href="#module-tftpy.TftpClient">The <cite>TftpClient</cite> Module</a></li>
<li><a class="reference external" href="#module-tftpy.TftpServer">The <cite>TftpServer</cite> Module</a></li>
</ul>
</li>
<li><a class="reference external" href="#back-end-modules">Back-end Modules</a><ul>
<li><a class="reference external" href="#module-tftpy.TftpPacketFactory">tftpy.TftpPacketFactory</a></li>
<li><a class="reference external" href="#module-tftpy.TftpPacketTypes">tftpy.TftpPacketTypes</a></li>
<li><a class="reference external" href="#module-tftpy.TftpShared">tftpy.TftpShared</a></li>
<li><a class="reference external" href="#module-tftpy.TftpStates">tftpy.TftpStates</a></li>
<li><a class="reference external" href="#module-tftpy.TftpPacketFactory">The <cite>TftpPacketFactory</cite> Module</a></li>
<li><a class="reference external" href="#module-tftpy.TftpPacketTypes">The <cite>TftpPacketTypes</cite> Module</a></li>
<li><a class="reference external" href="#module-tftpy.TftpShared">The <cite>TftpShared</cite> Module</a></li>
<li><a class="reference external" href="#module-tftpy.TftpStates">The <cite>TftpStates</cite> Module</a></li>
</ul>
</li>
</ul>
@ -691,7 +732,7 @@ will commit to one of them once we interpret the initial packet.</p>
</div>
<div class="footer">
&copy; Copyright 2010, Michael P. Soulier.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.5.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
</div>
</body>
</html>

View file

@ -118,7 +118,7 @@
</div>
<div class="footer">
&copy; Copyright 2010, Michael P. Soulier.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.5.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
</div>
</body>
</html>

View file

@ -89,7 +89,7 @@
<div class="footer">
&copy; Copyright 2010, Michael P. Soulier.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.5.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.4.
</div>
<script type="text/javascript" src="searchindex.js"></script>

File diff suppressed because one or more lines are too long