Updated epydoc output for website.

This commit is contained in:
Michael P. Soulier 2009-10-24 00:13:23 -04:00
parent a80639c7e2
commit badf18f2a4
64 changed files with 16319 additions and 6 deletions

View file

@ -1,7 +1,7 @@
PY=/usr/bin/env python
PYTHONPATH=.
all: test sdist tftpy-doc.tar.gz
all: test sdist
sdist:
PYTHONPATH=$(PYTHONPATH) $(PY) setup.py sdist
@ -9,14 +9,13 @@ sdist:
test:
PYTHONPATH=$(PYTHONPATH) $(PY) t/test.py
doc: apidocs
apidocs: tftpy-doc
tftpy-doc:
PYTHONPATH=$(PYTHONPATH) epydoc --html -o tftpy-doc tftpy
tftpy-doc.tar.gz: tftpy-doc
-mkdir dist
tar -zcvf dist/tftpy-doc.tar.gz tftpy-doc
rm -rf html/tftpy-doc
PYTHONPATH=$(PYTHONPATH) epydoc --html -o html/tftpy-doc tftpy
clean:
rm -rf dist src tftpy-doc* MANIFEST

View file

@ -19,6 +19,7 @@
<li><a href="#plans">Future Plans</a></li>
<li><a href="#code">The Code</a></li>
<li><a href="#support">Support</a></li>
<li><a href="#doc">Documentation</a></li>
</ul>
</div>
<div class="content">
@ -116,6 +117,12 @@
me</a> with any questions, or contact me through github. I'm also
"msoulier" in <a href="http://identi.ca">identi.ca</a>.</p>
<a name="doc" />
<h2>Documentation</h2>
<p>For now, all I have is the
<a href="tftpy-doc/index.html">API docs</a>. I'll have to work up a
tutorial and a manual at some point.</p>
<hr />
<p>Last updated: April 8, 2009.</p>

View file

@ -0,0 +1,272 @@
tftpy tftpy-module.html
tftpy.verlist tftpy-module.html#verlist
tftpy.TftpClient' tftpy.TftpClient%27-module.html
tftpy.TftpClient'.MAX_BLKSIZE tftpy.TftpClient%27-module.html#MAX_BLKSIZE
tftpy.TftpClient'.TIMEOUT_RETRIES tftpy.TftpClient%27-module.html#TIMEOUT_RETRIES
tftpy.TftpClient'.LOG_LEVEL tftpy.TftpClient%27-module.html#LOG_LEVEL
tftpy.TftpClient'.log tftpy.TftpClient%27-module.html#log
tftpy.TftpClient'.DEF_TFTP_PORT tftpy.TftpClient%27-module.html#DEF_TFTP_PORT
tftpy.TftpClient'.MAX_DUPS tftpy.TftpClient%27-module.html#MAX_DUPS
tftpy.TftpClient'.MIN_BLKSIZE tftpy.TftpClient%27-module.html#MIN_BLKSIZE
tftpy.TftpClient'.SOCK_TIMEOUT tftpy.TftpClient%27-module.html#SOCK_TIMEOUT
tftpy.TftpClient'.DEF_BLKSIZE tftpy.TftpClient%27-module.html#DEF_BLKSIZE
tftpy.TftpPacketFactory' tftpy.TftpPacketFactory%27-module.html
tftpy.TftpPacketFactory'.MAX_BLKSIZE tftpy.TftpPacketFactory%27-module.html#MAX_BLKSIZE
tftpy.TftpPacketFactory'.MAX_DUPS tftpy.TftpPacketFactory%27-module.html#MAX_DUPS
tftpy.TftpPacketFactory'.TIMEOUT_RETRIES tftpy.TftpPacketFactory%27-module.html#TIMEOUT_RETRIES
tftpy.TftpPacketFactory'.LOG_LEVEL tftpy.TftpPacketFactory%27-module.html#LOG_LEVEL
tftpy.TftpPacketFactory'.log tftpy.TftpPacketFactory%27-module.html#log
tftpy.TftpPacketFactory'.DEF_TFTP_PORT tftpy.TftpPacketFactory%27-module.html#DEF_TFTP_PORT
tftpy.TftpPacketFactory'.MIN_BLKSIZE tftpy.TftpPacketFactory%27-module.html#MIN_BLKSIZE
tftpy.TftpPacketFactory'.SOCK_TIMEOUT tftpy.TftpPacketFactory%27-module.html#SOCK_TIMEOUT
tftpy.TftpPacketFactory'.DEF_BLKSIZE tftpy.TftpPacketFactory%27-module.html#DEF_BLKSIZE
tftpy.TftpPacketTypes tftpy.TftpPacketTypes-module.html
tftpy.TftpPacketTypes.tftpassert tftpy.TftpShared-module.html#tftpassert
tftpy.TftpPacketTypes.setLogLevel tftpy.TftpShared-module.html#setLogLevel
tftpy.TftpServer' tftpy.TftpServer%27-module.html
tftpy.TftpServer'.MAX_BLKSIZE tftpy.TftpServer%27-module.html#MAX_BLKSIZE
tftpy.TftpServer'.TIMEOUT_RETRIES tftpy.TftpServer%27-module.html#TIMEOUT_RETRIES
tftpy.TftpServer'.LOG_LEVEL tftpy.TftpServer%27-module.html#LOG_LEVEL
tftpy.TftpServer'.log tftpy.TftpServer%27-module.html#log
tftpy.TftpServer'.DEF_TFTP_PORT tftpy.TftpServer%27-module.html#DEF_TFTP_PORT
tftpy.TftpServer'.MAX_DUPS tftpy.TftpServer%27-module.html#MAX_DUPS
tftpy.TftpServer'.MIN_BLKSIZE tftpy.TftpServer%27-module.html#MIN_BLKSIZE
tftpy.TftpServer'.SOCK_TIMEOUT tftpy.TftpServer%27-module.html#SOCK_TIMEOUT
tftpy.TftpServer'.DEF_BLKSIZE tftpy.TftpServer%27-module.html#DEF_BLKSIZE
tftpy.TftpShared tftpy.TftpShared-module.html
tftpy.TftpShared.DEF_BLKSIZE tftpy.TftpShared-module.html#DEF_BLKSIZE
tftpy.TftpShared.MAX_BLKSIZE tftpy.TftpShared-module.html#MAX_BLKSIZE
tftpy.TftpShared.setLogLevel tftpy.TftpShared-module.html#setLogLevel
tftpy.TftpShared.MIN_BLKSIZE tftpy.TftpShared-module.html#MIN_BLKSIZE
tftpy.TftpShared.log tftpy.TftpShared-module.html#log
tftpy.TftpShared.tftpassert tftpy.TftpShared-module.html#tftpassert
tftpy.TftpShared.MAX_DUPS tftpy.TftpShared-module.html#MAX_DUPS
tftpy.TftpShared.TIMEOUT_RETRIES tftpy.TftpShared-module.html#TIMEOUT_RETRIES
tftpy.TftpShared.SOCK_TIMEOUT tftpy.TftpShared-module.html#SOCK_TIMEOUT
tftpy.TftpShared.LOG_LEVEL tftpy.TftpShared-module.html#LOG_LEVEL
tftpy.TftpShared.DEF_TFTP_PORT tftpy.TftpShared-module.html#DEF_TFTP_PORT
tftpy.TftpStates tftpy.TftpStates-module.html
tftpy.TftpClient'.TftpClient tftpy.TftpClient%27.TftpClient-class.html
tftpy.TftpClient'.TftpClient.upload tftpy.TftpClient%27.TftpClient-class.html#upload
tftpy.TftpClient'.TftpClient.download tftpy.TftpClient%27.TftpClient-class.html#download
tftpy.TftpClient'.TftpClient.__init__ tftpy.TftpClient%27.TftpClient-class.html#__init__
tftpy.TftpPacketFactory'.TftpPacketFactory tftpy.TftpPacketFactory%27.TftpPacketFactory-class.html
tftpy.TftpPacketFactory'.TftpPacketFactory.parse tftpy.TftpPacketFactory%27.TftpPacketFactory-class.html#parse
tftpy.TftpPacketFactory'.TftpPacketFactory.__create tftpy.TftpPacketFactory%27.TftpPacketFactory-class.html#__create
tftpy.TftpPacketFactory'.TftpPacketFactory.__init__ tftpy.TftpPacketFactory%27.TftpPacketFactory-class.html#__init__
tftpy.TftpPacketTypes.TftpPacket tftpy.TftpPacketTypes.TftpPacket-class.html
tftpy.TftpPacketTypes.TftpPacket.decode tftpy.TftpPacketTypes.TftpPacket-class.html#decode
tftpy.TftpPacketTypes.TftpPacket.encode tftpy.TftpPacketTypes.TftpPacket-class.html#encode
tftpy.TftpPacketTypes.TftpPacket.__init__ tftpy.TftpPacketTypes.TftpPacket-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketACK tftpy.TftpPacketTypes.TftpPacketACK-class.html
tftpy.TftpPacketTypes.TftpPacketACK.__str__ tftpy.TftpPacketTypes.TftpPacketACK-class.html#__str__
tftpy.TftpPacketTypes.TftpPacketACK.decode tftpy.TftpPacketTypes.TftpPacketACK-class.html#decode
tftpy.TftpPacketTypes.TftpPacketACK.encode tftpy.TftpPacketTypes.TftpPacketACK-class.html#encode
tftpy.TftpPacketTypes.TftpPacketACK.__init__ tftpy.TftpPacketTypes.TftpPacketACK-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketDAT tftpy.TftpPacketTypes.TftpPacketDAT-class.html
tftpy.TftpPacketTypes.TftpPacketDAT.__str__ tftpy.TftpPacketTypes.TftpPacketDAT-class.html#__str__
tftpy.TftpPacketTypes.TftpPacketDAT.decode tftpy.TftpPacketTypes.TftpPacketDAT-class.html#decode
tftpy.TftpPacketTypes.TftpPacketDAT.encode tftpy.TftpPacketTypes.TftpPacketDAT-class.html#encode
tftpy.TftpPacketTypes.TftpPacketDAT.__init__ tftpy.TftpPacketTypes.TftpPacketDAT-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketERR tftpy.TftpPacketTypes.TftpPacketERR-class.html
tftpy.TftpPacketTypes.TftpPacketERR.__str__ tftpy.TftpPacketTypes.TftpPacketERR-class.html#__str__
tftpy.TftpPacketTypes.TftpPacketERR.decode tftpy.TftpPacketTypes.TftpPacketERR-class.html#decode
tftpy.TftpPacketTypes.TftpPacketERR.encode tftpy.TftpPacketTypes.TftpPacketERR-class.html#encode
tftpy.TftpPacketTypes.TftpPacketERR.__init__ tftpy.TftpPacketTypes.TftpPacketERR-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketInitial tftpy.TftpPacketTypes.TftpPacketInitial-class.html
tftpy.TftpPacketTypes.TftpPacketWithOptions.setoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#setoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#decode_options
tftpy.TftpPacketTypes.TftpPacketInitial.decode tftpy.TftpPacketTypes.TftpPacketInitial-class.html#decode
tftpy.TftpPacketTypes.TftpPacketInitial.encode tftpy.TftpPacketTypes.TftpPacketInitial-class.html#encode
tftpy.TftpPacketTypes.TftpPacketWithOptions.getoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#getoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#options
tftpy.TftpPacketTypes.TftpPacketInitial.__init__ tftpy.TftpPacketTypes.TftpPacketInitial-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketOACK tftpy.TftpPacketTypes.TftpPacketOACK-class.html
tftpy.TftpPacketTypes.TftpPacketWithOptions.setoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#setoptions
tftpy.TftpPacketTypes.TftpPacketOACK.__str__ tftpy.TftpPacketTypes.TftpPacketOACK-class.html#__str__
tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#decode_options
tftpy.TftpPacketTypes.TftpPacketOACK.decode tftpy.TftpPacketTypes.TftpPacketOACK-class.html#decode
tftpy.TftpPacketTypes.TftpPacketOACK.match_options tftpy.TftpPacketTypes.TftpPacketOACK-class.html#match_options
tftpy.TftpPacketTypes.TftpPacketOACK.encode tftpy.TftpPacketTypes.TftpPacketOACK-class.html#encode
tftpy.TftpPacketTypes.TftpPacketWithOptions.getoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#getoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#options
tftpy.TftpPacketTypes.TftpPacketOACK.__init__ tftpy.TftpPacketTypes.TftpPacketOACK-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketRRQ tftpy.TftpPacketTypes.TftpPacketRRQ-class.html
tftpy.TftpPacketTypes.TftpPacketWithOptions.setoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#setoptions
tftpy.TftpPacketTypes.TftpPacketRRQ.__str__ tftpy.TftpPacketTypes.TftpPacketRRQ-class.html#__str__
tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#decode_options
tftpy.TftpPacketTypes.TftpPacketInitial.decode tftpy.TftpPacketTypes.TftpPacketInitial-class.html#decode
tftpy.TftpPacketTypes.TftpPacketInitial.encode tftpy.TftpPacketTypes.TftpPacketInitial-class.html#encode
tftpy.TftpPacketTypes.TftpPacketWithOptions.getoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#getoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#options
tftpy.TftpPacketTypes.TftpPacketRRQ.__init__ tftpy.TftpPacketTypes.TftpPacketRRQ-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketWRQ tftpy.TftpPacketTypes.TftpPacketWRQ-class.html
tftpy.TftpPacketTypes.TftpPacketWithOptions.setoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#setoptions
tftpy.TftpPacketTypes.TftpPacketWRQ.__str__ tftpy.TftpPacketTypes.TftpPacketWRQ-class.html#__str__
tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#decode_options
tftpy.TftpPacketTypes.TftpPacketInitial.decode tftpy.TftpPacketTypes.TftpPacketInitial-class.html#decode
tftpy.TftpPacketTypes.TftpPacketInitial.encode tftpy.TftpPacketTypes.TftpPacketInitial-class.html#encode
tftpy.TftpPacketTypes.TftpPacketWithOptions.getoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#getoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#options
tftpy.TftpPacketTypes.TftpPacketWRQ.__init__ tftpy.TftpPacketTypes.TftpPacketWRQ-class.html#__init__
tftpy.TftpPacketTypes.TftpPacketWithOptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html
tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#decode_options
tftpy.TftpPacketTypes.TftpPacketWithOptions.setoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#setoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.getoptions tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#getoptions
tftpy.TftpPacketTypes.TftpPacketWithOptions.options tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#options
tftpy.TftpPacketTypes.TftpPacketWithOptions.__init__ tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html#__init__
tftpy.TftpPacketTypes.TftpSession tftpy.TftpPacketTypes.TftpSession-class.html
tftpy.TftpServer'.TftpServer tftpy.TftpServer%27.TftpServer-class.html
tftpy.TftpServer'.TftpServer.__init__ tftpy.TftpServer%27.TftpServer-class.html#__init__
tftpy.TftpServer'.TftpServer.listen tftpy.TftpServer%27.TftpServer-class.html#listen
tftpy.TftpShared.TftpErrors tftpy.TftpShared.TftpErrors-class.html
tftpy.TftpShared.TftpErrors.IllegalTftpOp tftpy.TftpShared.TftpErrors-class.html#IllegalTftpOp
tftpy.TftpShared.TftpErrors.DiskFull tftpy.TftpShared.TftpErrors-class.html#DiskFull
tftpy.TftpShared.TftpErrors.UnknownTID tftpy.TftpShared.TftpErrors-class.html#UnknownTID
tftpy.TftpShared.TftpErrors.FileAlreadyExists tftpy.TftpShared.TftpErrors-class.html#FileAlreadyExists
tftpy.TftpShared.TftpErrors.NoSuchUser tftpy.TftpShared.TftpErrors-class.html#NoSuchUser
tftpy.TftpShared.TftpErrors.FailedNegotiation tftpy.TftpShared.TftpErrors-class.html#FailedNegotiation
tftpy.TftpShared.TftpErrors.NotDefined tftpy.TftpShared.TftpErrors-class.html#NotDefined
tftpy.TftpShared.TftpErrors.AccessViolation tftpy.TftpShared.TftpErrors-class.html#AccessViolation
tftpy.TftpShared.TftpErrors.FileNotFound tftpy.TftpShared.TftpErrors-class.html#FileNotFound
tftpy.TftpShared.TftpException tftpy.TftpShared.TftpException-class.html
tftpy.TftpStates.TftpContext tftpy.TftpStates.TftpContext-class.html
tftpy.TftpStates.TftpContext.end tftpy.TftpStates.TftpContext-class.html#end
tftpy.TftpStates.TftpContext.checkTimeout tftpy.TftpStates.TftpContext-class.html#checkTimeout
tftpy.TftpStates.TftpContext.sethost tftpy.TftpStates.TftpContext-class.html#sethost
tftpy.TftpStates.TftpContext.setNextBlock tftpy.TftpStates.TftpContext-class.html#setNextBlock
tftpy.TftpStates.TftpContext.start tftpy.TftpStates.TftpContext-class.html#start
tftpy.TftpStates.TftpContext.host tftpy.TftpStates.TftpContext-class.html#host
tftpy.TftpStates.TftpContext.getNextBlock tftpy.TftpStates.TftpContext-class.html#getNextBlock
tftpy.TftpStates.TftpContext.cycle tftpy.TftpStates.TftpContext-class.html#cycle
tftpy.TftpStates.TftpContext.gethost tftpy.TftpStates.TftpContext-class.html#gethost
tftpy.TftpStates.TftpContext.__init__ tftpy.TftpStates.TftpContext-class.html#__init__
tftpy.TftpStates.TftpContext.next_block tftpy.TftpStates.TftpContext-class.html#next_block
tftpy.TftpStates.TftpContextClientDownload tftpy.TftpStates.TftpContextClientDownload-class.html
tftpy.TftpStates.TftpContextClientDownload.end tftpy.TftpStates.TftpContextClientDownload-class.html#end
tftpy.TftpStates.TftpContext.checkTimeout tftpy.TftpStates.TftpContext-class.html#checkTimeout
tftpy.TftpStates.TftpContext.sethost tftpy.TftpStates.TftpContext-class.html#sethost
tftpy.TftpStates.TftpContext.setNextBlock tftpy.TftpStates.TftpContext-class.html#setNextBlock
tftpy.TftpStates.TftpContextClientDownload.start tftpy.TftpStates.TftpContextClientDownload-class.html#start
tftpy.TftpStates.TftpContext.host tftpy.TftpStates.TftpContext-class.html#host
tftpy.TftpStates.TftpContext.getNextBlock tftpy.TftpStates.TftpContext-class.html#getNextBlock
tftpy.TftpStates.TftpContext.next_block tftpy.TftpStates.TftpContext-class.html#next_block
tftpy.TftpStates.TftpContext.gethost tftpy.TftpStates.TftpContext-class.html#gethost
tftpy.TftpStates.TftpContextClientDownload.__init__ tftpy.TftpStates.TftpContextClientDownload-class.html#__init__
tftpy.TftpStates.TftpContext.cycle tftpy.TftpStates.TftpContext-class.html#cycle
tftpy.TftpStates.TftpContextClientUpload tftpy.TftpStates.TftpContextClientUpload-class.html
tftpy.TftpStates.TftpContextClientUpload.end tftpy.TftpStates.TftpContextClientUpload-class.html#end
tftpy.TftpStates.TftpContext.checkTimeout tftpy.TftpStates.TftpContext-class.html#checkTimeout
tftpy.TftpStates.TftpContext.sethost tftpy.TftpStates.TftpContext-class.html#sethost
tftpy.TftpStates.TftpContext.setNextBlock tftpy.TftpStates.TftpContext-class.html#setNextBlock
tftpy.TftpStates.TftpContextClientUpload.start tftpy.TftpStates.TftpContextClientUpload-class.html#start
tftpy.TftpStates.TftpContext.host tftpy.TftpStates.TftpContext-class.html#host
tftpy.TftpStates.TftpContext.getNextBlock tftpy.TftpStates.TftpContext-class.html#getNextBlock
tftpy.TftpStates.TftpContext.next_block tftpy.TftpStates.TftpContext-class.html#next_block
tftpy.TftpStates.TftpContext.gethost tftpy.TftpStates.TftpContext-class.html#gethost
tftpy.TftpStates.TftpContextClientUpload.__init__ tftpy.TftpStates.TftpContextClientUpload-class.html#__init__
tftpy.TftpStates.TftpContext.cycle tftpy.TftpStates.TftpContext-class.html#cycle
tftpy.TftpStates.TftpContextServer tftpy.TftpStates.TftpContextServer-class.html
tftpy.TftpStates.TftpContextServer.end tftpy.TftpStates.TftpContextServer-class.html#end
tftpy.TftpStates.TftpContext.checkTimeout tftpy.TftpStates.TftpContext-class.html#checkTimeout
tftpy.TftpStates.TftpContext.sethost tftpy.TftpStates.TftpContext-class.html#sethost
tftpy.TftpStates.TftpContext.setNextBlock tftpy.TftpStates.TftpContext-class.html#setNextBlock
tftpy.TftpStates.TftpContextServer.start tftpy.TftpStates.TftpContextServer-class.html#start
tftpy.TftpStates.TftpContext.host tftpy.TftpStates.TftpContext-class.html#host
tftpy.TftpStates.TftpContext.getNextBlock tftpy.TftpStates.TftpContext-class.html#getNextBlock
tftpy.TftpStates.TftpContext.next_block tftpy.TftpStates.TftpContext-class.html#next_block
tftpy.TftpStates.TftpContext.gethost tftpy.TftpStates.TftpContext-class.html#gethost
tftpy.TftpStates.TftpContextServer.__init__ tftpy.TftpStates.TftpContextServer-class.html#__init__
tftpy.TftpStates.TftpContext.cycle tftpy.TftpStates.TftpContext-class.html#cycle
tftpy.TftpStates.TftpMetrics tftpy.TftpStates.TftpMetrics-class.html
tftpy.TftpStates.TftpMetrics.compute tftpy.TftpStates.TftpMetrics-class.html#compute
tftpy.TftpStates.TftpMetrics.add_dup tftpy.TftpStates.TftpMetrics-class.html#add_dup
tftpy.TftpStates.TftpMetrics.__init__ tftpy.TftpStates.TftpMetrics-class.html#__init__
tftpy.TftpStates.TftpState tftpy.TftpStates.TftpState-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpState.handle tftpy.TftpStates.TftpState-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpStateExpectACK tftpy.TftpStates.TftpStateExpectACK-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateExpectACK.handle tftpy.TftpStates.TftpStateExpectACK-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpStateExpectDAT tftpy.TftpStates.TftpStateExpectDAT-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateExpectDAT.handle tftpy.TftpStates.TftpStateExpectDAT-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpStateSentRRQ tftpy.TftpStates.TftpStateSentRRQ-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateSentRRQ.handle tftpy.TftpStates.TftpStateSentRRQ-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpStateSentWRQ tftpy.TftpStates.TftpStateSentWRQ-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateSentWRQ.handle tftpy.TftpStates.TftpStateSentWRQ-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpStateServerRecvRRQ tftpy.TftpStates.TftpStateServerRecvRRQ-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateServerRecvRRQ.handle tftpy.TftpStates.TftpStateServerRecvRRQ-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpStateServerRecvWRQ tftpy.TftpStates.TftpStateServerRecvWRQ-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateServerRecvWRQ.handle tftpy.TftpStates.TftpStateServerRecvWRQ-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT
tftpy.TftpStates.TftpStateServerStart tftpy.TftpStates.TftpStateServerStart-class.html
tftpy.TftpStates.TftpState.sendError tftpy.TftpStates.TftpState-class.html#sendError
tftpy.TftpStates.TftpStateServerStart.handle tftpy.TftpStates.TftpStateServerStart-class.html#handle
tftpy.TftpStates.TftpState.handleOACK tftpy.TftpStates.TftpState-class.html#handleOACK
tftpy.TftpStates.TftpState.handleDat tftpy.TftpStates.TftpState-class.html#handleDat
tftpy.TftpStates.TftpState.serverInitial tftpy.TftpStates.TftpState-class.html#serverInitial
tftpy.TftpStates.TftpState.returnSupportedOptions tftpy.TftpStates.TftpState-class.html#returnSupportedOptions
tftpy.TftpStates.TftpState.__init__ tftpy.TftpStates.TftpState-class.html#__init__
tftpy.TftpStates.TftpState.sendACK tftpy.TftpStates.TftpState-class.html#sendACK
tftpy.TftpStates.TftpState.sendOACK tftpy.TftpStates.TftpState-class.html#sendOACK
tftpy.TftpStates.TftpState.sendDAT tftpy.TftpStates.TftpState-class.html#sendDAT

View file

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="ascii"?>
<!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>Class Hierarchy</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="tftpy-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th bgcolor="#70b0f0" class="navbar-select"
>&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">&nbsp;</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>]&nbsp;|&nbsp;<a href="class-tree.html"
target="_top">no&nbsp;frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<center><b>
[ <a href="module-tree.html">Module Hierarchy</a>
| <a href="class-tree.html">Class Hierarchy</a> ]
</b></center><br />
<h1 class="epydoc">Class Hierarchy</h1>
<ul class="nomargin-top">
<li> <strong class="uidlink">object</strong>:
<em class="summary">The most base type</em>
<ul>
<li> <strong class="uidlink">exceptions.BaseException</strong>:
<em class="summary">Common base class for all exceptions</em>
<ul>
<li> <strong class="uidlink">exceptions.Exception</strong>:
<em class="summary">Common base class for all non-exit exceptions.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpShared.TftpException-class.html">tftpy.TftpShared.TftpException</a></strong>:
<em class="summary">This class is the parent class of all exceptions regarding the
handling of the TFTP protocol.</em>
</li>
</ul>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpContext-class.html">tftpy.TftpStates.TftpContext</a></strong>:
<em class="summary">The base class of the contexts.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpContextClientDownload-class.html">tftpy.TftpStates.TftpContextClientDownload</a></strong>:
<em class="summary">The download context for the client during a download.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpContextClientUpload-class.html">tftpy.TftpStates.TftpContextClientUpload</a></strong>:
<em class="summary">The upload context for the client during an upload.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpContextServer-class.html">tftpy.TftpStates.TftpContextServer</a></strong>:
<em class="summary">The context for the server.</em>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpShared.TftpErrors-class.html">tftpy.TftpShared.TftpErrors</a></strong>:
<em class="summary">This class is a convenience for defining the common tftp error
codes, and making them more readable in the code.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpMetrics-class.html">tftpy.TftpStates.TftpMetrics</a></strong>:
<em class="summary">A class representing metrics of the transfer.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacket-class.html">tftpy.TftpPacketTypes.TftpPacket</a></strong>:
<em class="summary">This class is the parent class of all tftp packet classes.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketACK-class.html">tftpy.TftpPacketTypes.TftpPacketACK</a></strong>:
<em class="summary">2 bytes 2 bytes...</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketDAT-class.html">tftpy.TftpPacketTypes.TftpPacketDAT</a></strong>:
<em class="summary">2 bytes 2 bytes n bytes...</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketERR-class.html">tftpy.TftpPacketTypes.TftpPacketERR</a></strong>:
<em class="summary">2 bytes 2 bytes string 1 byte
----------------------------------------
ERROR | 05 | ErrorCode | ErrMsg | 0 |
----------------------------------------
Error Codes</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketInitial-class.html">tftpy.TftpPacketTypes.TftpPacketInitial</a></strong>:
<em class="summary">This class is a common parent class for the RRQ and WRQ packets, as
they share quite a bit of code.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketRRQ-class.html">tftpy.TftpPacketTypes.TftpPacketRRQ</a></strong>:
<em class="summary">2 bytes string 1 byte string 1 byte...</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketWRQ-class.html">tftpy.TftpPacketTypes.TftpPacketWRQ</a></strong>:
<em class="summary">2 bytes string 1 byte string 1 byte...</em>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketOACK-class.html">tftpy.TftpPacketTypes.TftpPacketOACK</a></strong>:
<em class="summary"># +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+ #
| opc | opt1 | 0 | value1 | 0 | optN | 0 | valueN | 0 | #
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+</em>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketFactory%27.TftpPacketFactory-class.html">tftpy.TftpPacketFactory'.TftpPacketFactory</a></strong>:
<em class="summary">This class generates TftpPacket objects.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketWithOptions-class.html">tftpy.TftpPacketTypes.TftpPacketWithOptions</a></strong>:
<em class="summary">This class exists to permit some TftpPacket subclasses to share
code regarding options handling.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketInitial-class.html">tftpy.TftpPacketTypes.TftpPacketInitial</a></strong>:
<em class="summary">This class is a common parent class for the RRQ and WRQ packets, as
they share quite a bit of code.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketRRQ-class.html">tftpy.TftpPacketTypes.TftpPacketRRQ</a></strong>:
<em class="summary">2 bytes string 1 byte string 1 byte...</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketWRQ-class.html">tftpy.TftpPacketTypes.TftpPacketWRQ</a></strong>:
<em class="summary">2 bytes string 1 byte string 1 byte...</em>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpPacketOACK-class.html">tftpy.TftpPacketTypes.TftpPacketOACK</a></strong>:
<em class="summary"># +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+ #
| opc | opt1 | 0 | value1 | 0 | optN | 0 | valueN | 0 | #
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+</em>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpPacketTypes.TftpSession-class.html">tftpy.TftpPacketTypes.TftpSession</a></strong>:
<em class="summary">This class is the base class for the tftp client and server.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpClient%27.TftpClient-class.html">tftpy.TftpClient'.TftpClient</a></strong>:
<em class="summary">This class is an implementation of a tftp client.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpServer%27.TftpServer-class.html">tftpy.TftpServer'.TftpServer</a></strong>:
<em class="summary">This class implements a tftp server object.</em>
</li>
</ul>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpState-class.html">tftpy.TftpStates.TftpState</a></strong>:
<em class="summary">The base class for the states.</em>
<ul>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateExpectACK-class.html">tftpy.TftpStates.TftpStateExpectACK</a></strong>:
<em class="summary">This class represents the state of the transfer when a DAT was just
sent, and we are waiting for an ACK from the server.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateExpectDAT-class.html">tftpy.TftpStates.TftpStateExpectDAT</a></strong>:
<em class="summary">Just sent an ACK packet.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateSentRRQ-class.html">tftpy.TftpStates.TftpStateSentRRQ</a></strong>:
<em class="summary">Just sent an RRQ packet.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateSentWRQ-class.html">tftpy.TftpStates.TftpStateSentWRQ</a></strong>:
<em class="summary">Just sent an WRQ packet for an upload.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateServerRecvRRQ-class.html">tftpy.TftpStates.TftpStateServerRecvRRQ</a></strong>:
<em class="summary">This class represents the state of the TFTP server when it has just
received an RRQ packet.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateServerRecvWRQ-class.html">tftpy.TftpStates.TftpStateServerRecvWRQ</a></strong>:
<em class="summary">This class represents the state of the TFTP server when it has just
received a WRQ packet.</em>
</li>
<li> <strong class="uidlink"><a href="tftpy.TftpStates.TftpStateServerStart-class.html">tftpy.TftpStates.TftpStateServerStart</a></strong>:
<em class="summary">The start state for the server.</em>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="tftpy-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th bgcolor="#70b0f0" class="navbar-select"
>&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0.1 on Sat Oct 24 00:10:21 2009
</td>
<td align="right" class="footer">
<a target="mainFrame" href="http://epydoc.sourceforge.net"
>http://epydoc.sourceforge.net</a>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie();
// -->
</script>
</body>
</html>

BIN
html/tftpy-doc/crarr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

322
html/tftpy-doc/epydoc.css Normal file
View file

@ -0,0 +1,322 @@
/* Epydoc CSS Stylesheet
*
* This stylesheet can be used to customize the appearance of epydoc's
* HTML output.
*
*/
/* Default Colors & Styles
* - Set the default foreground & background color with 'body'; and
* link colors with 'a:link' and 'a:visited'.
* - Use bold for decision list terms.
* - The heading styles defined here are used for headings *within*
* docstring descriptions. All headings used by epydoc itself use
* either class='epydoc' or class='toc' (CSS styles for both
* defined below).
*/
body { background: #ffffff; color: #000000; }
p { margin-top: 0.5em; margin-bottom: 0.5em; }
a:link { color: #0000ff; }
a:visited { color: #204080; }
dt { font-weight: bold; }
h1 { font-size: +140%; font-style: italic;
font-weight: bold; }
h2 { font-size: +125%; font-style: italic;
font-weight: bold; }
h3 { font-size: +110%; font-style: italic;
font-weight: normal; }
code { font-size: 100%; }
/* N.B.: class, not pseudoclass */
a.link { font-family: monospace; }
/* Page Header & Footer
* - The standard page header consists of a navigation bar (with
* pointers to standard pages such as 'home' and 'trees'); a
* breadcrumbs list, which can be used to navigate to containing
* classes or modules; options links, to show/hide private
* variables and to show/hide frames; and a page title (using
* <h1>). The page title may be followed by a link to the
* corresponding source code (using 'span.codelink').
* - The footer consists of a navigation bar, a timestamp, and a
* pointer to epydoc's homepage.
*/
h1.epydoc { margin: 0; font-size: +140%; font-weight: bold; }
h2.epydoc { font-size: +130%; font-weight: bold; }
h3.epydoc { font-size: +115%; font-weight: bold;
margin-top: 0.2em; }
td h3.epydoc { font-size: +115%; font-weight: bold;
margin-bottom: 0; }
table.navbar { background: #a0c0ff; color: #000000;
border: 2px groove #c0d0d0; }
table.navbar table { color: #000000; }
th.navbar-select { background: #70b0ff;
color: #000000; }
table.navbar a { text-decoration: none; }
table.navbar a:link { color: #0000ff; }
table.navbar a:visited { color: #204080; }
span.breadcrumbs { font-size: 85%; font-weight: bold; }
span.options { font-size: 70%; }
span.codelink { font-size: 85%; }
td.footer { font-size: 85%; }
/* Table Headers
* - Each summary table and details section begins with a 'header'
* row. This row contains a section title (marked by
* 'span.table-header') as well as a show/hide private link
* (marked by 'span.options', defined above).
* - Summary tables that contain user-defined groups mark those
* groups using 'group header' rows.
*/
td.table-header { background: #70b0ff; color: #000000;
border: 1px solid #608090; }
td.table-header table { color: #000000; }
td.table-header table a:link { color: #0000ff; }
td.table-header table a:visited { color: #204080; }
span.table-header { font-size: 120%; font-weight: bold; }
th.group-header { background: #c0e0f8; color: #000000;
text-align: left; font-style: italic;
font-size: 115%;
border: 1px solid #608090; }
/* Summary Tables (functions, variables, etc)
* - Each object is described by a single row of the table with
* two cells. The left cell gives the object's type, and is
* marked with 'code.summary-type'. The right cell gives the
* object's name and a summary description.
* - CSS styles for the table's header and group headers are
* defined above, under 'Table Headers'
*/
table.summary { border-collapse: collapse;
background: #e8f0f8; color: #000000;
border: 1px solid #608090;
margin-bottom: 0.5em; }
td.summary { border: 1px solid #608090; }
code.summary-type { font-size: 85%; }
table.summary a:link { color: #0000ff; }
table.summary a:visited { color: #204080; }
/* Details Tables (functions, variables, etc)
* - Each object is described in its own div.
* - A single-row summary table w/ table-header is used as
* a header for each details section (CSS style for table-header
* is defined above, under 'Table Headers').
*/
table.details { border-collapse: collapse;
background: #e8f0f8; color: #000000;
border: 1px solid #608090;
margin: .2em 0 0 0; }
table.details table { color: #000000; }
table.details a:link { color: #0000ff; }
table.details a:visited { color: #204080; }
/* Fields */
dl.fields { margin-left: 2em; margin-top: 1em;
margin-bottom: 1em; }
dl.fields dd ul { margin-left: 0em; padding-left: 0em; }
dl.fields dd ul li ul { margin-left: 2em; padding-left: 0em; }
div.fields { margin-left: 2em; }
div.fields p { margin-bottom: 0.5em; }
/* Index tables (identifier index, term index, etc)
* - link-index is used for indices containing lists of links
* (namely, the identifier index & term index).
* - index-where is used in link indices for the text indicating
* the container/source for each link.
* - metadata-index is used for indices containing metadata
* extracted from fields (namely, the bug index & todo index).
*/
table.link-index { border-collapse: collapse;
background: #e8f0f8; color: #000000;
border: 1px solid #608090; }
td.link-index { border-width: 0px; }
table.link-index a:link { color: #0000ff; }
table.link-index a:visited { color: #204080; }
span.index-where { font-size: 70%; }
table.metadata-index { border-collapse: collapse;
background: #e8f0f8; color: #000000;
border: 1px solid #608090;
margin: .2em 0 0 0; }
td.metadata-index { border-width: 1px; border-style: solid; }
table.metadata-index a:link { color: #0000ff; }
table.metadata-index a:visited { color: #204080; }
/* Function signatures
* - sig* is used for the signature in the details section.
* - .summary-sig* is used for the signature in the summary
* table, and when listing property accessor functions.
* */
.sig-name { color: #006080; }
.sig-arg { color: #008060; }
.sig-default { color: #602000; }
.summary-sig { font-family: monospace; }
.summary-sig-name { color: #006080; font-weight: bold; }
table.summary a.summary-sig-name:link
{ color: #006080; font-weight: bold; }
table.summary a.summary-sig-name:visited
{ color: #006080; font-weight: bold; }
.summary-sig-arg { color: #006040; }
.summary-sig-default { color: #501800; }
/* Subclass list
*/
ul.subclass-list { display: inline; }
ul.subclass-list li { display: inline; }
/* To render variables, classes etc. like functions */
table.summary .summary-name { color: #006080; font-weight: bold;
font-family: monospace; }
table.summary
a.summary-name:link { color: #006080; font-weight: bold;
font-family: monospace; }
table.summary
a.summary-name:visited { color: #006080; font-weight: bold;
font-family: monospace; }
/* Variable values
* - In the 'variable details' sections, each varaible's value is
* listed in a 'pre.variable' box. The width of this box is
* restricted to 80 chars; if the value's repr is longer than
* this it will be wrapped, using a backslash marked with
* class 'variable-linewrap'. If the value's repr is longer
* than 3 lines, the rest will be ellided; and an ellipsis
* marker ('...' marked with 'variable-ellipsis') will be used.
* - If the value is a string, its quote marks will be marked
* with 'variable-quote'.
* - If the variable is a regexp, it is syntax-highlighted using
* the re* CSS classes.
*/
pre.variable { padding: .5em; margin: 0;
background: #dce4ec; color: #000000;
border: 1px solid #708890; }
.variable-linewrap { color: #604000; font-weight: bold; }
.variable-ellipsis { color: #604000; font-weight: bold; }
.variable-quote { color: #604000; font-weight: bold; }
.variable-group { color: #008000; font-weight: bold; }
.variable-op { color: #604000; font-weight: bold; }
.variable-string { color: #006030; }
.variable-unknown { color: #a00000; font-weight: bold; }
.re { color: #000000; }
.re-char { color: #006030; }
.re-op { color: #600000; }
.re-group { color: #003060; }
.re-ref { color: #404040; }
/* Base tree
* - Used by class pages to display the base class hierarchy.
*/
pre.base-tree { font-size: 80%; margin: 0; }
/* Frames-based table of contents headers
* - Consists of two frames: one for selecting modules; and
* the other listing the contents of the selected module.
* - h1.toc is used for each frame's heading
* - h2.toc is used for subheadings within each frame.
*/
h1.toc { text-align: center; font-size: 105%;
margin: 0; font-weight: bold;
padding: 0; }
h2.toc { font-size: 100%; font-weight: bold;
margin: 0.5em 0 0 -0.3em; }
/* Syntax Highlighting for Source Code
* - doctest examples are displayed in a 'pre.py-doctest' block.
* If the example is in a details table entry, then it will use
* the colors specified by the 'table pre.py-doctest' line.
* - Source code listings are displayed in a 'pre.py-src' block.
* Each line is marked with 'span.py-line' (used to draw a line
* down the left margin, separating the code from the line
* numbers). Line numbers are displayed with 'span.py-lineno'.
* The expand/collapse block toggle button is displayed with
* 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
* modify the font size of the text.)
* - If a source code page is opened with an anchor, then the
* corresponding code block will be highlighted. The code
* block's header is highlighted with 'py-highlight-hdr'; and
* the code block's body is highlighted with 'py-highlight'.
* - The remaining py-* classes are used to perform syntax
* highlighting (py-string for string literals, py-name for names,
* etc.)
*/
pre.py-doctest { padding: .5em; margin: 1em;
background: #e8f0f8; color: #000000;
border: 1px solid #708890; }
table pre.py-doctest { background: #dce4ec;
color: #000000; }
pre.py-src { border: 2px solid #000000;
background: #f0f0f0; color: #000000; }
.py-line { border-left: 2px solid #000000;
margin-left: .2em; padding-left: .4em; }
.py-lineno { font-style: italic; font-size: 90%;
padding-left: .5em; }
a.py-toggle { text-decoration: none; }
div.py-highlight-hdr { border-top: 2px solid #000000;
border-bottom: 2px solid #000000;
background: #d8e8e8; }
div.py-highlight { border-bottom: 2px solid #000000;
background: #d0e0e0; }
.py-prompt { color: #005050; font-weight: bold;}
.py-more { color: #005050; font-weight: bold;}
.py-string { color: #006030; }
.py-comment { color: #003060; }
.py-keyword { color: #600000; }
.py-output { color: #404040; }
.py-name { color: #000050; }
.py-name:link { color: #000050 !important; }
.py-name:visited { color: #000050 !important; }
.py-number { color: #005000; }
.py-defname { color: #000060; font-weight: bold; }
.py-def-name { color: #000060; font-weight: bold; }
.py-base-class { color: #000060; }
.py-param { color: #000060; }
.py-docstring { color: #006030; }
.py-decorator { color: #804020; }
/* Use this if you don't want links to names underlined: */
/*a.py-name { text-decoration: none; }*/
/* Graphs & Diagrams
* - These CSS styles are used for graphs & diagrams generated using
* Graphviz dot. 'img.graph-without-title' is used for bare
* diagrams (to remove the border created by making the image
* clickable).
*/
img.graph-without-title { border: none; }
img.graph-with-title { border: 1px solid #000000; }
span.graph-title { font-weight: bold; }
span.graph-caption { }
/* General-purpose classes
* - 'p.indent-wrapped-lines' defines a paragraph whose first line
* is not indented, but whose subsequent lines are.
* - The 'nomargin-top' class is used to remove the top margin (e.g.
* from lists). The 'nomargin' class is used to remove both the
* top and bottom margin (but not the left or right margin --
* for lists, that would cause the bullets to disappear.)
*/
p.indent-wrapped-lines { padding: 0 0 0 7em; text-indent: -7em;
margin: 0; }
.nomargin-top { margin-top: 0; }
.nomargin { margin-top: 0; margin-bottom: 0; }
/* HTML Log */
div.log-block { padding: 0; margin: .5em 0 .5em 0;
background: #e8f0f8; color: #000000;
border: 1px solid #000000; }
div.log-error { padding: .1em .3em .1em .3em; margin: 4px;
background: #ffb0b0; color: #000000;
border: 1px solid #000000; }
div.log-warning { padding: .1em .3em .1em .3em; margin: 4px;
background: #ffffb0; color: #000000;
border: 1px solid #000000; }
div.log-info { padding: .1em .3em .1em .3em; margin: 4px;
background: #b0ffb0; color: #000000;
border: 1px solid #000000; }
h2.log-hdr { background: #70b0ff; color: #000000;
margin: 0; padding: 0em 0.5em 0em 0.5em;
border-bottom: 1px solid #000000; font-size: 110%; }
p.log { font-weight: bold; margin: .5em 0 .5em 0; }
tr.opt-changed { color: #000000; font-weight: bold; }
tr.opt-default { color: #606060; }
pre.log { margin: 0; padding: 0; padding-left: 1em; }

293
html/tftpy-doc/epydoc.js Normal file
View file

@ -0,0 +1,293 @@
function toggle_private() {
// Search for any private/public links on this page. Store
// their old text in "cmd," so we will know what action to
// take; and change their text to the opposite action.
var cmd = "?";
var elts = document.getElementsByTagName("a");
for(var i=0; i<elts.length; i++) {
if (elts[i].className == "privatelink") {
cmd = elts[i].innerHTML;
elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
"hide&nbsp;private":"show&nbsp;private");
}
}
// Update all DIVs containing private objects.
var elts = document.getElementsByTagName("div");
for(var i=0; i<elts.length; i++) {
if (elts[i].className == "private") {
elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
}
else if (elts[i].className == "public") {
elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
}
}
// Update all table rows containing private objects. Note, we
// use "" instead of "block" becaue IE & firefox disagree on what
// this should be (block vs table-row), and "" just gives the
// default for both browsers.
var elts = document.getElementsByTagName("tr");
for(var i=0; i<elts.length; i++) {
if (elts[i].className == "private") {
elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
}
}
// Update all list items containing private objects.
var elts = document.getElementsByTagName("li");
for(var i=0; i<elts.length; i++) {
if (elts[i].className == "private") {
elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
"none":"");
}
}
// Update all list items containing private objects.
var elts = document.getElementsByTagName("ul");
for(var i=0; i<elts.length; i++) {
if (elts[i].className == "private") {
elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
}
}
// Set a cookie to remember the current option.
document.cookie = "EpydocPrivate="+cmd;
}
function show_private() {
var elts = document.getElementsByTagName("a");
for(var i=0; i<elts.length; i++) {
if (elts[i].className == "privatelink") {
cmd = elts[i].innerHTML;
if (cmd && cmd.substr(0,4)=="show")
toggle_private();
}
}
}
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else
{ begin += 2; }
var end = document.cookie.indexOf(";", begin);
if (end == -1)
{ end = dc.length; }
return unescape(dc.substring(begin + prefix.length, end));
}
function setFrame(url1, url2) {
parent.frames[1].location.href = url1;
parent.frames[2].location.href = url2;
}
function checkCookie() {
var cmd=getCookie("EpydocPrivate");
if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
toggle_private();
}
function toggleCallGraph(id) {
var elt = document.getElementById(id);
if (elt.style.display == "none")
elt.style.display = "block";
else
elt.style.display = "none";
}
function expand(id) {
var elt = document.getElementById(id+"-expanded");
if (elt) elt.style.display = "block";
var elt = document.getElementById(id+"-expanded-linenums");
if (elt) elt.style.display = "block";
var elt = document.getElementById(id+"-collapsed");
if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
var elt = document.getElementById(id+"-collapsed-linenums");
if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
var elt = document.getElementById(id+"-toggle");
if (elt) { elt.innerHTML = "-"; }
}
function collapse(id) {
var elt = document.getElementById(id+"-expanded");
if (elt) elt.style.display = "none";
var elt = document.getElementById(id+"-expanded-linenums");
if (elt) elt.style.display = "none";
var elt = document.getElementById(id+"-collapsed-linenums");
if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
var elt = document.getElementById(id+"-toggle");
if (elt) { elt.innerHTML = "+"; }
var elt = document.getElementById(id+"-collapsed");
if (elt) {
elt.style.display = "block";
var indent = elt.getAttribute("indent");
var pad = elt.getAttribute("pad");
var s = "<tt class='py-lineno'>";
for (var i=0; i<pad.length; i++) { s += "&nbsp;" }
s += "</tt>";
s += "&nbsp;&nbsp;<tt class='py-line'>";
for (var i=0; i<indent.length; i++) { s += "&nbsp;" }
s += "<a href='#' onclick='expand(\"" + id;
s += "\");return false'>...</a></tt><br />";
elt.innerHTML = s;
}
}
function toggle(id) {
elt = document.getElementById(id+"-toggle");
if (elt.innerHTML == "-")
collapse(id);
else
expand(id);
return false;
}
function highlight(id) {
var elt = document.getElementById(id+"-def");
if (elt) elt.className = "py-highlight-hdr";
var elt = document.getElementById(id+"-expanded");
if (elt) elt.className = "py-highlight";
var elt = document.getElementById(id+"-collapsed");
if (elt) elt.className = "py-highlight";
}
function num_lines(s) {
var n = 1;
var pos = s.indexOf("\n");
while ( pos > 0) {
n += 1;
pos = s.indexOf("\n", pos+1);
}
return n;
}
// Collapse all blocks that mave more than `min_lines` lines.
function collapse_all(min_lines) {
var elts = document.getElementsByTagName("div");
for (var i=0; i<elts.length; i++) {
var elt = elts[i];
var split = elt.id.indexOf("-");
if (split > 0)
if (elt.id.substring(split, elt.id.length) == "-expanded")
if (num_lines(elt.innerHTML) > min_lines)
collapse(elt.id.substring(0, split));
}
}
function expandto(href) {
var start = href.indexOf("#")+1;
if (start != 0 && start != href.length) {
if (href.substring(start, href.length) != "-") {
collapse_all(4);
pos = href.indexOf(".", start);
while (pos != -1) {
var id = href.substring(start, pos);
expand(id);
pos = href.indexOf(".", pos+1);
}
var id = href.substring(start, href.length);
expand(id);
highlight(id);
}
}
}
function kill_doclink(id) {
var parent = document.getElementById(id);
parent.removeChild(parent.childNodes.item(0));
}
function auto_kill_doclink(ev) {
if (!ev) var ev = window.event;
if (!this.contains(ev.toElement)) {
var parent = document.getElementById(this.parentID);
parent.removeChild(parent.childNodes.item(0));
}
}
function doclink(id, name, targets_id) {
var elt = document.getElementById(id);
// If we already opened the box, then destroy it.
// (This case should never occur, but leave it in just in case.)
if (elt.childNodes.length > 1) {
elt.removeChild(elt.childNodes.item(0));
}
else {
// The outer box: relative + inline positioning.
var box1 = document.createElement("div");
box1.style.position = "relative";
box1.style.display = "inline";
box1.style.top = 0;
box1.style.left = 0;
// A shadow for fun
var shadow = document.createElement("div");
shadow.style.position = "absolute";
shadow.style.left = "-1.3em";
shadow.style.top = "-1.3em";
shadow.style.background = "#404040";
// The inner box: absolute positioning.
var box2 = document.createElement("div");
box2.style.position = "relative";
box2.style.border = "1px solid #a0a0a0";
box2.style.left = "-.2em";
box2.style.top = "-.2em";
box2.style.background = "white";
box2.style.padding = ".3em .4em .3em .4em";
box2.style.fontStyle = "normal";
box2.onmouseout=auto_kill_doclink;
box2.parentID = id;
// Get the targets
var targets_elt = document.getElementById(targets_id);
var targets = targets_elt.getAttribute("targets");
var links = "";
target_list = targets.split(",");
for (var i=0; i<target_list.length; i++) {
var target = target_list[i].split("=");
links += "<li><a href='" + target[1] +
"' style='text-decoration:none'>" +
target[0] + "</a></li>";
}
// Put it all together.
elt.insertBefore(box1, elt.childNodes.item(0));
//box1.appendChild(box2);
box1.appendChild(shadow);
shadow.appendChild(box2);
box2.innerHTML =
"Which <b>"+name+"</b> do you want to see documentation for?" +
"<ul style='margin-bottom: 0;'>" +
links +
"<li><a href='#' style='text-decoration:none' " +
"onclick='kill_doclink(\""+id+"\");return false;'>"+
"<i>None of the above</i></a></li></ul>";
}
return false;
}
function get_anchor() {
var href = location.href;
var start = href.indexOf("#")+1;
if ((start != 0) && (start != href.length))
return href.substring(start, href.length);
}
function redirect_url(dottedName) {
// Scan through each element of the "pages" list, and check
// if "name" matches with any of them.
for (var i=0; i<pages.length; i++) {
// Each page has the form "<pagename>-m" or "<pagename>-c";
// extract the <pagename> portion & compare it to dottedName.
var pagename = pages[i].substring(0, pages[i].length-2);
if (pagename == dottedName.substring(0,pagename.length)) {
// We've found a page that matches `dottedName`;
// construct its URL, using leftover `dottedName`
// content to form an anchor.
var pagetype = pages[i].charAt(pages[i].length-1);
var url = pagename + ((pagetype=="m")?"-module.html":
"-class.html");
if (dottedName.length > pagename.length)
url += "#" + dottedName.substring(pagename.length+1,
dottedName.length);
return url;
}
}
}

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title> API Documentation </title>
</head>
<frameset cols="20%,80%">
<frameset rows="30%,70%">
<frame src="toc.html" name="moduleListFrame"
id="moduleListFrame" />
<frame src="toc-everything.html" name="moduleFrame"
id="moduleFrame" />
</frameset>
<frame src="tftpy-module.html" name="mainFrame" id="mainFrame" />
</frameset>
</html>

268
html/tftpy-doc/help.html Normal file
View file

@ -0,0 +1,268 @@
<?xml version="1.0" encoding="ascii"?>
<!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>Help</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Home link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="tftpy-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Tree link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Index link -->
<th>&nbsp;&nbsp;&nbsp;<a
href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
<!-- Help link -->
<th bgcolor="#70b0f0" class="navbar-select"
>&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">&nbsp;</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>]&nbsp;|&nbsp;<a href="help.html"
target="_top">no&nbsp;frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<h1 class="epydoc"> API Documentation </h1>
<p> This document contains the API (Application Programming Interface)
documentation for this project. Documentation for the Python
objects defined by the project is divided into separate pages for each
package, module, and class. The API documentation also includes two
pages containing information about the project as a whole: a trees
page, and an index page. </p>
<h2> Object Documentation </h2>
<p>Each <strong>Package Documentation</strong> page contains: </p>
<ul>
<li> A description of the package. </li>
<li> A list of the modules and sub-packages contained by the
package. </li>
<li> A summary of the classes defined by the package. </li>
<li> A summary of the functions defined by the package. </li>
<li> A summary of the variables defined by the package. </li>
<li> A detailed description of each function defined by the
package. </li>
<li> A detailed description of each variable defined by the
package. </li>
</ul>
<p>Each <strong>Module Documentation</strong> page contains:</p>
<ul>
<li> A description of the module. </li>
<li> A summary of the classes defined by the module. </li>
<li> A summary of the functions defined by the module. </li>
<li> A summary of the variables defined by the module. </li>
<li> A detailed description of each function defined by the
module. </li>
<li> A detailed description of each variable defined by the
module. </li>
</ul>
<p>Each <strong>Class Documentation</strong> page contains: </p>
<ul>
<li> A class inheritance diagram. </li>
<li> A list of known subclasses. </li>
<li> A description of the class. </li>
<li> A summary of the methods defined by the class. </li>
<li> A summary of the instance variables defined by the class. </li>
<li> A summary of the class (static) variables defined by the
class. </li>
<li> A detailed description of each method defined by the
class. </li>
<li> A detailed description of each instance variable defined by the
class. </li>
<li> A detailed description of each class (static) variable defined
by the class. </li>
</ul>
<h2> Project Documentation </h2>
<p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
<ul>
<li> The <em>module hierarchy</em> lists every package and module, with
modules grouped into packages. At the top level, and within each
package, modules and sub-packages are listed alphabetically. </li>
<li> The <em>class hierarchy</em> lists every class, grouped by base
class. If a class has more than one base class, then it will be
listed under each base class. At the top level, and under each base
class, classes are listed alphabetically. </li>
</ul>
<p> The <strong>Index</strong> page contains indices of terms and
identifiers: </p>
<ul>
<li> The <em>term index</em> lists every term indexed by any object's
documentation. For each term, the index provides links to each
place where the term is indexed. </li>
<li> The <em>identifier index</em> lists the (short) name of every package,
module, class, method, function, variable, and parameter. For each
identifier, the index provides a short description, and a link to
its documentation. </li>
</ul>
<h2> The Table of Contents </h2>
<p> The table of contents occupies the two frames on the left side of
the window. The upper-left frame displays the <em>project
contents</em>, and the lower-left frame displays the <em>module
contents</em>: </p>
<table class="help summary" border="1" cellspacing="0" cellpadding="3">
<tr style="height: 30%">
<td align="center" style="font-size: small">
Project<br />Contents<hr />...</td>
<td align="center" style="font-size: small" rowspan="2" width="70%">
API<br />Documentation<br />Frame<br /><br /><br />
</td>
</tr>
<tr>
<td align="center" style="font-size: small">
Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;
</td>
</tr>
</table><br />
<p> The <strong>project contents frame</strong> contains a list of all packages
and modules that are defined by the project. Clicking on an entry
will display its contents in the module contents frame. Clicking on a
special entry, labeled "Everything," will display the contents of
the entire project. </p>
<p> The <strong>module contents frame</strong> contains a list of every