From e35cd2d60c857d3d85350993606149f5622aab18 Mon Sep 17 00:00:00 2001 From: "Michael P. Soulier" Date: Wed, 14 Jul 2010 13:28:53 -0400 Subject: [PATCH] Added simple doc examples and install info. --- ChangeLog | 358 +++++++++++++++++--------------- bin/tftpy_client.py | 8 +- doc/index.rst | 28 +++ html/sphinx/_sources/index.txt | 28 +++ html/sphinx/_static/default.css | 12 ++ html/sphinx/genindex.html | 2 +- html/sphinx/index.html | 28 ++- html/sphinx/modindex.html | 2 +- html/sphinx/search.html | 2 +- html/sphinx/searchindex.js | 2 +- setup.py | 2 +- 11 files changed, 298 insertions(+), 174 deletions(-) diff --git a/ChangeLog b/ChangeLog index ae7f618..057b5c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,214 +1,244 @@ -2010-05-10 Michael P. Soulier - * Fixing buffering issue in upload. Uploads work now. - * Updated README - * First working upload with new state machine. Not usable yet, upload fails to always send all data for some reason. - * Fixed an obvious error introduced with the dyn_file_func merge -2010-04-24 Michael P. Soulier - * Merge commit 'angry-elf/master' into merge +2010-07-12 Michael P. Soulier + 74f6756: Playing with sphinx formatting -2010-02-18 Michael P. Soulier - * Taking patch from "Mike C. Fletcher" , fixing a bad reference to dyn_func_file from a state object. +2010-07-11 Michael P. Soulier + 1caa220: Latest doc updates + ad94976: Replacing epydoc output on website. + 402b2ae: Adding initial Sphinx docs -2010-02-18 Alexey Loshkarev - * Fix dyn_file_func (was broken?) Fix error message (filename was not displayed) +2010-05-25 Michael P. Soulier + 0b54068: Fixing typo in unit test + 58623df: Adding support for input/output as stdin/stdout -2009-10-24 Michael P. Soulier - * Updated epydoc output for website. +2010-05-24 Michael P. Soulier + f4a3ff6: Fixing failure to set default blocksize if options were provided but blksize was not one of them. -2009-09-24 Michael P. Soulier - * Changed licenses to the MIT License - * Fixing some log messages and bad variable references. +2010-05-12 Patrick Oppenlander + 1a2b556: fix incorrectly assigned state transition + 360b0b9: fix divide by zero in speed calculation for short transfers -2009-08-18 Michael P. Soulier - * Updated resent_data in metrics. - * Fixed server metrics summary. +2010-05-10 Michael P. Soulier + 3c40546: Updated site html formatting + 9ed42a8: Website update + 5f0e405: Updating notes + d4c15e1: Fixing the license in the setup.py + 2f0c0db: Updated website + becb299: Updating metadata for 0.5.0 release + faebd44: Fixing buffering issue in upload. Uploads work now. + a071549: Updated README + 2bb8326: First working upload with new state machine. Not usable yet, upload fails to always send all data for some reason. + 4a4f53a: Fixed an obvious error introduced with the dyn_file_func merge -2009-08-16 Michael P. Soulier - * First successful download with both client and server. - * Did some rework for the state machine in a server context. Removed the handler framework in favour of a TftpContextServer used as the session. - * Fixing up some of the upload code. +2010-04-24 Michael P. Soulier + 8a56d94: Merge commit 'angry-elf/master' into merge -2009-07-21 Michael P. Soulier - * Adding patch for dynamic content from Alex ? +2010-02-18 Michael P. Soulier + 8343ccf: Taking patch from "Mike C. Fletcher" , fixing a bad reference to dyn_func_file from a state object. -2009-04-10 Michael P. Soulier - * Fixing a merge error in rebase - * Fixed bug in tidport handling, and lack of OACK response. - * Fixing OACK handling with new state machine. - * Fixed TftpClient with new state machine. - * Started overhaul of state machine. - * Improving sample client output on error and fixing default blocksize when server ignores options. - * Merged upload patch. +2010-02-18 Alexey Loshkarev + 72c4769: Fix dyn_file_func (was broken?) Fix error message (filename was not displayed) -2009-04-09 Michael P. Soulier - * Updating version in setup +2009-10-24 Michael P. Soulier + badf18f: Updated epydoc output for website. -2009-04-08 Michael P. Soulier - * Website update +2009-09-24 Michael P. Soulier + a80639c: Changed licenses to the MIT License + ce7fc32: Fixing some log messages and bad variable references. -2009-04-07 Michael P. Soulier - * Fixing bogus warnings in options handling. - * Merge branch 'master' of git@github.com:msoulier/tftpy - * Fixing tftproot configured for server as a relative path. +2009-08-18 Michael P. Soulier + 781072b: Updated resent_data in metrics. + 3ae3b31: Fixed server metrics summary. -2009-03-15 Michael P. Soulier - * Updated site with stylesheet - * Website update +2009-08-16 Michael P. Soulier + a6a18c1: First successful download with both client and server. -2009-03-14 Michael P. Soulier - * Adding website +2009-08-15 Michael P. Soulier + 62b22fb: Did some rework for the state machine in a server context. Removed the handler framework in favour of a TftpContextServer used as the session. -2008-10-08 Michael P. Soulier - * Fixed the use of the tsize option in RRQ packets. +2009-06-20 Michael P. Soulier + 03e4e74: Fixing up some of the upload code. -2008-10-05 Michael P. Soulier - * Rolling 0.4.6 +2009-07-21 Michael P. Soulier + 5ee5f63: Adding patch for dynamic content from Alex ? -2008-10-04 Michael P. Soulier - * Rebased tsize branch and added a --tsize option to the client. Now sending all packets to the progresshook, not just DAT packets, so that the client can see the OACK. Not yet making use of the returned tsize. Need to test this on a server that supports tsize. - * Adding transfer size option patch from Kuba Kończyk. Patch 2018609 in SF tracker. +2009-04-10 Michael P. Soulier + c61ca17: Fixing a merge error in rebase + 410e14c: Fixed bug in tidport handling, and lack of OACK response. + 874fef5: Fixing OACK handling with new state machine. + 5072f6d: Fixed TftpClient with new state machine. -2008-10-03 Michael P. Soulier - * Merged from SVN trunk after register to PyPi +2009-04-08 Michael P. Soulier + e7a63bb: Started overhaul of state machine. -2008-10-04 msoulier - * Updated for PyPi +2009-04-10 Michael P. Soulier + 41bf3a2: Improving sample client output on error and fixing default blocksize when server ignores options. + bd2e195: Merged upload patch. -2008-07-30 Michael P. Soulier - * Adding upload patch from Lorenz Schori - patch 1897344 in SF tracker +2009-04-09 Michael P. Soulier + 449f10a: Updating version in setup -2008-05-28 msoulier - * Tagging 0.4.5. - * Updated for v0.4.5 release. - * Fix for bug 1967647, referencing self.sock instead of sock. +2009-04-08 Michael P. Soulier + 40185e5: Website update -2008-05-20 msoulier - * Fix for [ 1932310 ] security check always fail for windows. - * Fixed division by zero error in rate calculations in download function of client. Thanks to Stefaan Vanheesbeke for the report. - * Fix for bug [ 1932330 ] binary downloads fail in Windows. +2009-04-07 Michael P. Soulier + bc55a17: Fixing bogus warnings in options handling. + 74c68b1: Merge branch 'master' of git@github.com:msoulier/tftpy + d058642: Fixing tftproot configured for server as a relative path. -2008-01-31 msoulier - * Updated README. - * Updated ChangeLog - * Updating version to 0.4.4 +2009-03-15 Michael P. Soulier + 23b32d0: Updated site with stylesheet + 0cfcea2: Website update -2007-12-16 msoulier - * Fixing 1851544 - server not tolerant of unsupported options Thanks to Landon Jurgens for the report. +2009-03-14 Michael P. Soulier + abf0f1f: Adding website -2007-07-17 msoulier - * Updated for 0.4.3 release. +2008-10-08 Michael P. Soulier + ca7a06a: Fixed the use of the tsize option in RRQ packets. -2007-07-16 msoulier - * Removed redundant comparison. - * Fixing string/integer comparison. Thanks to Simon P. Ditner, bug #1755146. +2008-10-05 Michael P. Soulier + 0a5df33: Rolling 0.4.6 -2007-06-05 msoulier - * Updated for 0.4.2 - * Fixed unit test for factory +2008-10-04 Michael P. Soulier + 07416bf: Rebased tsize branch and added a --tsize option to the client. Now sending all packets to the progresshook, not just DAT packets, so that the client can see the OACK. Not yet making use of the returned tsize. Need to test this on a server that supports tsize. -2007-03-31 msoulier - * Updating docs for epydoc. - * Updated build process. - * Adding epydoc target. +2008-07-30 Michael P. Soulier + 8a0162b: Adding transfer size option patch from Kuba Kończyk. Patch 2018609 in SF tracker. -2007-03-15 msoulier - * Updated ChangeLog +2008-10-03 Michael P. Soulier + c408389: Merged from SVN trunk after register to PyPi -2007-02-23 msoulier - * Simplifying use of optparse. Thanks to Steven Bethard for the suggestions. +2008-10-04 msoulier + 65ef2d9: Updated for PyPi -2007-02-17 msoulier - * Removed mention of sorceror's apprentice problem. - * Rearranged packaging a bit to fix an importing problem. - * Supplying a default blksize options in the server. Fix for 1633625. +2008-07-30 Michael P. Soulier + 6730280: Adding upload patch from Lorenz Schori - patch 1897344 in SF tracker -2007-02-10 msoulier - * Added a check for rogue packets in the server. +2008-05-28 msoulier + 33b1353: Tagging 0.4.5. + 936e4df: Updated for v0.4.5 release. + caff30d: Fix for bug 1967647, referencing self.sock instead of sock. -2007-02-09 msoulier - * Making the lib backwards-compatible to Python 2.3. +2008-05-20 msoulier + 70f22b1: Fix for [ 1932310 ] security check always fail for windows. + 596af40: Fixed division by zero error in rate calculations in download function of client. Thanks to Stefaan Vanheesbeke for the report. + 3b1bae3: Fix for bug [ 1932330 ] binary downloads fail in Windows. -2006-12-17 msoulier - * Rolling to version 0.4.1. - * Restructuring single lib into a package. - * Restructuring single lib into a package. - * Restructuring single lib into a package. - * Restructuring single lib into a package. - * Fixing install location of library. +2008-01-31 msoulier + 648564c: Updated README. + 792df2d: Updated ChangeLog + 941f5bf: Updating version to 0.4.4 -2006-12-16 msoulier - * Added server to package. - * Updated ChangeLog, and rolled version to 0.4 +2007-12-16 msoulier + f8af287: Fixing 1851544 - server not tolerant of unsupported options Thanks to Landon Jurgens for the report. -2006-12-15 msoulier - * Making server exit gracefully. - * Tweak to EOF handling in server. - * First working server tests with two clients. - * Added lots in the server to support a download, with timeouts. Not yet tested with a client, but the damn thing runs. - * Fixed a bug in handling block number rollovers. +2007-07-17 msoulier + 89a8382: Updated for 0.4.3 release. -2006-12-14 msoulier - * Got handling of file not found working in server. - * Starting on sample server. - * Successful test on basic select loop +2007-07-16 msoulier + 2a98d72: Removed redundant comparison. + 955ced3: Fixing string/integer comparison. Thanks to Simon P. Ditner, bug #1755146. -2006-12-11 msoulier - * Added some security checks around the tftproot. Further fleshed-out the handler. Still not actually starting the transfer. +2007-06-05 msoulier + 493dcac: Updated for 0.4.2 + bb47795: Fixed unit test for factory -2006-12-10 msoulier - * Fleshing out server handler implementation. - * Started on the server +2007-03-31 msoulier + d9665e1: Updating docs for epydoc. + b68ceca: Updated build process. + d8730c7: Adding epydoc target. -2006-12-09 msoulier - * Added --debug option to sample client. - * Adding license - * Adding ChangeLog - * Bumped the version. - * Changed the port variables to something more intelligent. - * Fixing poor TID implementation. +2007-03-15 msoulier + 0b41ffb: Updated ChangeLog -2006-10-25 msoulier - * Added testcase for TftpPacketFactory. +2007-02-23 msoulier + 8f5595c: Simplifying use of optparse. Thanks to Steven Bethard for the suggestions. -2006-10-13 msoulier - * Implemented retries on download timeouts. - * Added some info statements regarding option negotiation. - * Updated testcases, fixed one error in decode_options +2007-02-17 msoulier + 5c52975: Removed mention of sorceror's apprentice problem. + c8df0fd: Rearranged packaging a bit to fix an importing problem. + c7d86d3: Supplying a default blksize options in the server. Fix for 1633625. -2006-10-11 msoulier - * Updated testcases - * Updated makefile - * Adding makefile +2007-02-10 msoulier + 07906cd: Added a check for rogue packets in the server. -2006-10-10 msoulier - * Moved LICENSE to COPYING +2007-02-09 msoulier + f53e68b: Making the lib backwards-compatible to Python 2.3. -2006-10-09 msoulier - * Added test for WRQ packet - * Fixed broken decode, and adjusted the client options. +2006-12-17 msoulier + efd248f: Rolling to version 0.4.1. + 95b6a72: Restructuring single lib into a package. + a1ad552: Restructuring single lib into a package. + c43a24c: Restructuring single lib into a package. + 5e6d8fe: Restructuring single lib into a package. + 6eb1501: Fixing install location of library. -2006-10-08 msoulier - * Starting on unit tests +2006-12-16 msoulier + 15023eb: Added server to package. + ac2faa3: Updated ChangeLog, and rolled version to 0.4 -2006-10-05 msoulier - * Fixed handling of port - * Updating for production - * Freezing 0.2 - * Fixed poor EOF detection - * Got variable blocksizes working. +2006-12-15 msoulier + f79a1e9: Making server exit gracefully. + 16ebbf2: Tweak to EOF handling in server. + 7723705: First working server tests with two clients. + 5cfbae3: Added lots in the server to support a download, with timeouts. Not yet tested with a client, but the damn thing runs. + d5b7276: Fixed a bug in handling block number rollovers. -2006-10-04 msoulier - * Added confirmation of incoming traffic to known remote host. - * Restructured in preparation for tftp options - * Updated README - * Updated README - * Added seconds to logs - * Upping version to 0.2 - * Added OACK packet, and factored-out client code. +2006-12-14 msoulier + 7441f0a: Got handling of file not found working in server. + 3b4d177: Starting on sample server. + 94ef067: Successful test on basic select loop -2006-10-03 msoulier - * Updated a comment - * Restructuring - * Restructuring +2006-12-11 msoulier + 6f186f2: Added some security checks around the tftproot. Further fleshed-out the handler. Still not actually starting the transfer. +2006-12-10 msoulier + b5a96ec: Fleshing out server handler implementation. + fc2a587: Started on the server + +2006-12-09 msoulier + aece5aa: Added --debug option to sample client. + 204cce4: Adding license + 4fc510b: Adding ChangeLog + 07e2976: Bumped the version. + 104dfe0: Changed the port variables to something more intelligent. + 15c5a0f: Fixing poor TID implementation. + +2006-10-25 msoulier + 8e6cd77: Added testcase for TftpPacketFactory. + +2006-10-13 msoulier + 7486502: Implemented retries on download timeouts. + 0528b1b: Added some info statements regarding option negotiation. + 4c73041: Updated testcases, fixed one error in decode_options + +2006-10-11 msoulier + f2b7d5d: Updated testcases + 837344c: Updated makefile + 08af50a: Adding makefile + +2006-10-10 msoulier + 99b3bbd: Moved LICENSE to COPYING + +2006-10-09 msoulier + 2e42f99: Added test for WRQ packet + 6ebd6fc: Fixed broken decode, and adjusted the client options. + +2006-10-08 msoulier + 6db1b2c: Starting on unit tests + +2006-10-05 msoulier + e771f67: Fixed handling of port + cb75a4b: Updating for production + 19e8f0f: Freezing 0.2 + 0a13eb5: Fixed poor EOF detection + ed15161: Got variable blocksizes working. + +2006-10-04 msoulier + c24bba2: Added confirmation of incoming traffic to known remote host. + c11ac3a: Restructured in preparation for tftp options + 2827cf1: Updated README + c6094b0: Updated README + 09de253: Added seconds to logs + 82821e5: Upping version to 0.2 + 88c387b: Added OACK packet, and factored-out client code. diff --git a/bin/tftpy_client.py b/bin/tftpy_client.py index 98758b6..53ad5f9 100755 --- a/bin/tftpy_client.py +++ b/bin/tftpy_client.py @@ -98,14 +98,14 @@ def main(): if not options.output: options.output = os.path.basename(options.download) tclient.download(options.download, - options.output, - progresshook) + options.output, + progresshook) elif options.upload: if not options.input: options.input = os.path.basename(options.upload) tclient.upload(options.upload, - options.input, - progresshook) + options.input, + progresshook) except tftpy.TftpException, err: sys.stderr.write("%s\n" % str(err)) sys.exit(1) diff --git a/doc/index.rst b/doc/index.rst index d9dec00..50e0d4d 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -22,9 +22,37 @@ still work. Let me know if it doesn't. Installation ============ +If you download the source distribution, you can simply use distutils to +install, via:: + + python setup.py build + python setup.py install + +Or, as this has been uploaded to pypi, you can use easy_install or pip:: + + easy_install tftpy + pip install tftpy + +Once installed you should have the sample client and server scripts in bin, +and you should be able to import the `tftpy` module. Examples ======== +The simplest tftp client:: + + import tftpy + + client = tftpy.TftpClient('tftp.digitaltorque.ca', 69) + client.download('remote_filename', 'local_filename') + +The simplest tftp server:: + + import tftpy + + server = tftpy.TftpServer('/tftpboot') + server.listen('0.0.0.0', 69) + +See the sample client and server for slightly more complex examples. API Documentation ================= diff --git a/html/sphinx/_sources/index.txt b/html/sphinx/_sources/index.txt index d9dec00..50e0d4d 100644 --- a/html/sphinx/_sources/index.txt +++ b/html/sphinx/_sources/index.txt @@ -22,9 +22,37 @@ still work. Let me know if it doesn't. Installation ============ +If you download the source distribution, you can simply use distutils to +install, via:: + + python setup.py build + python setup.py install + +Or, as this has been uploaded to pypi, you can use easy_install or pip:: + + easy_install tftpy + pip install tftpy + +Once installed you should have the sample client and server scripts in bin, +and you should be able to import the `tftpy` module. Examples ======== +The simplest tftp client:: + + import tftpy + + client = tftpy.TftpClient('tftp.digitaltorque.ca', 69) + client.download('remote_filename', 'local_filename') + +The simplest tftp server:: + + import tftpy + + server = tftpy.TftpServer('/tftpboot') + server.listen('0.0.0.0', 69) + +See the sample client and server for slightly more complex examples. API Documentation ================= diff --git a/html/sphinx/_static/default.css b/html/sphinx/_static/default.css index 42ed6ec..3725744 100644 --- a/html/sphinx/_static/default.css +++ b/html/sphinx/_static/default.css @@ -166,6 +166,18 @@ 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; diff --git a/html/sphinx/genindex.html b/html/sphinx/genindex.html index 67b8f85..fdda253 100644 --- a/html/sphinx/genindex.html +++ b/html/sphinx/genindex.html @@ -255,7 +255,7 @@ \ No newline at end of file diff --git a/html/sphinx/index.html b/html/sphinx/index.html index 25a437a..0d74271 100644 --- a/html/sphinx/index.html +++ b/html/sphinx/index.html @@ -58,9 +58,35 @@ still work. Let me know if it doesn’t.

Installation

+

If you download the source distribution, you can simply use distutils to +install, via:

+
python setup.py build
+python setup.py install
+
+

Or, as this has been uploaded to pypi, you can use easy_install or pip:

+
easy_install tftpy
+pip install tftpy
+
+

Once installed you should have the sample client and server scripts in bin, +and you should be able to import the tftpy module.

Examples

+

The simplest tftp client:

+
import tftpy
+
+client = tftpy.TftpClient('tftp.digitaltorque.ca', 69)
+client.download('remote_filename', 'local_filename')
+
+
+

The simplest tftp server:

+
import tftpy
+
+server = tftpy.TftpServer('/tftpboot')
+server.listen('0.0.0.0', 69)
+
+
+

See the sample client and server for slightly more complex examples.

API Documentation

@@ -732,7 +758,7 @@ will commit to one of them once we interpret the initial packet.

\ No newline at end of file diff --git a/html/sphinx/modindex.html b/html/sphinx/modindex.html index 18e890b..119f7f7 100644 --- a/html/sphinx/modindex.html +++ b/html/sphinx/modindex.html @@ -118,7 +118,7 @@ \ No newline at end of file diff --git a/html/sphinx/search.html b/html/sphinx/search.html index 59767e8..ff110ae 100644 --- a/html/sphinx/search.html +++ b/html/sphinx/search.html @@ -89,7 +89,7 @@ diff --git a/html/sphinx/searchindex.js b/html/sphinx/searchindex.js index a41fd75..39613ac 100644 --- a/html/sphinx/searchindex.js +++ b/html/sphinx/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{"0":"method","1":"exception","2":"class","3":"attribute","4":"function"},terms:{all:0,concept:0,chain:0,tftpclient:0,code:0,last_upd:0,inaddr_ani:0,disk:0,readabl:0,send:0,fatal:0,sent:0,string:0,fals:0,faq:0,tftpstateserverstart:0,util:0,tri:0,tftpshare:0,tftpstateexpectdat:0,tftpexcept:0,setloglevel:0,list:0,upload:0,blocknumb:0,sync:0,pass:0,download:0,port:0,rrq:0,index:0,compar:0,section:0,tftppacketiniti:0,current:0,version:[],"new":0,method:0,next_block:0,full:0,gener:0,here:0,let:0,address:0,path:0,sinc:0,valu:0,wait:0,search:0,serveriniti:0,amount:0,loop:0,permit:0,action:0,chang:0,tftppacketdat:0,via:0,modul:0,filenam:0,"boolean":0,sendack:0,opcod:0,instal:0,from:0,two:0,next:0,call:0,value1:0,handl:0,msg:0,type:0,until:0,more:0,diamond:0,desir:0,tftpstateserverrecvrrq:0,indic:0,hold:0,must:0,none:0,valuen:0,setup:0,work:0,tftpsession:0,can:0,root:0,listenip:0,overrid:0,share:0,accept:0,alwai:0,end:0,goal:0,add_dup:0,write:0,pure:0,instead:0,negoti:0,opt1:0,updat:0,haven:0,after:0,mai:0,tftppacketrrq:0,data:0,alloc:0,optn:0,stdin:0,explicit:0,correspond:0,caus:0,receiv:0,callabl:0,order:0,tftpy:0,over:0,through:0,still:0,dynam:0,paramet:0,tftppackettyp:0,better:0,wrq:0,main:0,them:0,"return":0,thei:0,python:0,initi:0,dat:0,packethook:0,front:0,now:0,name:0,simpl:0,level:0,mode:0,timeout:0,each:0,found:0,mean:0,michael:[],tftpcontextclientdownload:0,expect:0,out:0,variabl:0,network:0,content:0,suitabl:0,tftppacketack:0,tftppacketwrq:0,tftpcontextclientupload:0,standard:0,base:0,dictionari:0,put:0,org:0,"byte":0,unwant:0,tftppacketwithopt:0,think:0,first:0,oper:0,directli:0,onc:0,number:0,alreadi:0,done:0,tftppacket:0,size:0,differ:0,unknown:0,messag:0,transitori:0,illeg:0,conveni:0,listen:0,udp:0,option:0,copi:0,specifi:0,part:0,pars:0,than:0,serv:0,keyword:0,remot:0,tftpstateserverrecvwrq:0,cleaner:0,rfc1350:0,argument:0,raw:0,tftppacketoack:0,tabl:[],need:0,self:0,violat:0,note:0,also:0,exampl:0,take:0,which:0,notset:0,singl:0,unless:0,buffer:0,object:0,reach:0,"class":0,don:0,request:0,doe:0,getter:0,pkt:0,session:0,find:0,setter:0,access:0,onli:0,configur:0,releas:[],should:0,dict:0,local:0,tftpassert:0,senddat:0,gethost:0,requir:0,resend:0,rfc:0,provid:0,common:0,contain:0,senderror:0,set:0,packet:0,see:0,result:0,respons:0,fail:0,tftpcontext:0,wire:0,hopefulli:0,someth:0,state:0,"import":0,parent:0,cycl:0,entir:0,popul:0,tftpmetric:0,handleoack:0,instanc:0,context:0,tftp:0,point:0,instanti:0,hyphen:0,arriv:0,dispatch:0,suppli:0,tftpstatesentrrq:0,throughout:0,quit:0,compos:0,been:0,destructor:0,interpret:0,dup:0,"abstract":0,soulier:[],ani:0,those:0,"case":0,ident:0,listenport:0,properti:0,defin:0,"while":0,error:0,errmsg:0,pack:0,decode_opt:0,stdout:0,metric:0,itself:0,rport:0,welcom:[],author:[],perform:0,make:0,same:0,binari:0,html:0,decod:0,document:0,complet:0,finish:0,http:0,tftpcontextserv:0,moment:0,rais:0,user:0,implement:0,ackd:0,appropri:0,off:0,checktimeout:0,inherit:0,client:0,thi:0,unchang:0,protocol:0,just:0,tftproot:0,easi:0,handledat:0,dyn_file_func:0,except:0,add:0,other:0,input:0,save:0,match:0,read:0,tftperror:0,know:0,opc:0,bit:0,like:0,specif:0,server:0,api:0,either:0,output:0,page:0,www:0,some:0,back:0,intern:0,librari:0,subclass:0,condit:0,run:0,host:0,oack:0,"throw":0,socket:0,ack:0,tftpstatesentwrq:0,manag:0,datagram:0,commit:0,block:0,own:0,encod:0,exceed:0,log:0,transfer:0,support:0,start:0,tftpstateexpectack:0,interfac:0,includ:0,"function":0,form:0,regard:0,tftppacketfactori:0,sethost:0,raddress:0,sendoack:0,match_opt:0,whether:0,tftppacketerr:0,creat:0,dure:0,doesn:0,repres:0,exist:0,file:0,check:0,when:0,refactor:0,"default":0,cleanup:0,sock_timeout:0,test:0,you:0,tftpstate:0,returnsupportedopt:0,directori:0,tftpboot:0,tftpserver:0,time:0,errorcod:0},titles:["TFTPy"],modules:{"tftpy.TftpServer":0,tftpy:0,"tftpy.TftpShared":0,"tftpy.TftpPacketTypes":0,"tftpy.TftpStates":0,"tftpy.TftpClient":0,"tftpy.TftpPacketFactory":0},descrefs:{"tftpy.TftpPacketFactory.TftpPacketFactory":{parse:[0,0]},"tftpy.TftpShared":{tftpassert:[0,4],setLogLevel:[0,4],TftpException:[0,1],TftpErrors:[0,2]},"tftpy.TftpStates.TftpContextServer":{start:[0,0],end:[0,0]},"tftpy.TftpStates":{TftpContextClientUpload:[0,2],TftpMetrics:[0,2],TftpContextServer:[0,2],TftpState:[0,2],TftpContextClientDownload:[0,2],TftpStateServerStart:[0,2],TftpStateServerRecvRRQ:[0,2],TftpStateExpectACK:[0,2],TftpStateSentWRQ:[0,2],TftpStateSentRRQ:[0,2],TftpStateExpectDAT:[0,2],TftpContext:[0,2],TftpStateServerRecvWRQ:[0,2]},"tftpy.TftpPacketFactory":{TftpPacketFactory:[0,2]},"tftpy.TftpServer":{TftpServer:[0,2]},"tftpy.TftpPacketTypes.TftpPacket":{encode:[0,0],decode:[0,0]},"tftpy.TftpStates.TftpContext":{end:[0,0],checkTimeout:[0,0],sethost:[0,0],host:[0,3],gethost:[0,0],cycle:[0,0]},"tftpy.TftpStates.TftpContextClientDownload":{start:[0,0],end:[0,0]},"tftpy.TftpServer.TftpServer":{listen:[0,0]},"tftpy.TftpStates.TftpMetrics":{add_dup:[0,0]},"tftpy.TftpStates.TftpStateServerRecvRRQ":{handle:[0,0]},"tftpy.TftpClient":{TftpClient:[0,2]},"tftpy.TftpStates.TftpStateExpectDAT":{handle:[0,0]},"tftpy.TftpStates.TftpStateExpectACK":{handle:[0,0]},"tftpy.TftpStates.TftpStateSentRRQ":{handle:[0,0]},"tftpy.TftpStates.TftpState":{sendError:[0,0],handle:[0,0],handleOACK:[0,0],handleDat:[0,0],serverInitial:[0,0],returnSupportedOptions:[0,0],sendACK:[0,0],sendOACK:[0,0],sendDAT:[0,0]},"tftpy.TftpStates.TftpStateServerStart":{handle:[0,0]},"tftpy.TftpStates.TftpStateSentWRQ":{handle:[0,0]},"tftpy.TftpStates.TftpContextClientUpload":{end:[0,0]},"tftpy.TftpPacketTypes.TftpPacketERR":{decode:[0,0],encode:[0,0]},"tftpy.TftpPacketTypes.TftpPacketInitial":{encode:[0,0]},"tftpy.TftpClient.TftpClient":{download:[0,0],upload:[0,0]},"tftpy.TftpPacketTypes":{TftpPacketDAT:[0,2],TftpPacketWRQ:[0,2],TftpPacketERR:[0,2],TftpSession:[0,2],TftpPacketWithOptions:[0,2],TftpPacketOACK:[0,2],TftpPacketACK:[0,2],TftpPacketRRQ:[0,2],TftpPacketInitial:[0,2],TftpPacket:[0,2]},"tftpy.TftpPacketTypes.TftpPacketWithOptions":{decode_options:[0,0]},"tftpy.TftpStates.TftpStateServerRecvWRQ":{handle:[0,0]},"tftpy.TftpPacketTypes.TftpPacketDAT":{encode:[0,0],decode:[0,0]},"tftpy.TftpPacketTypes.TftpPacketOACK":{match_options:[0,0]}},filenames:["index"]}) \ No newline at end of file +Search.setIndex({desctypes:{"0":"method","1":"exception","2":"class","3":"attribute","4":"function"},terms:{all:0,code:0,chain:0,tftpclient:0,concept:0,last_upd:0,inaddr_ani:0,disk:0,local_filenam:0,readabl:0,send:0,fatal:0,sent:0,sourc:0,string:0,fals:0,faq:0,tftpstateserverstart:0,util:0,tri:0,tftpshare:0,tftpstateexpectdat:0,tftpexcept:0,setloglevel:0,list:0,upload:0,blocknumb:0,sync:0,pass:0,download:0,port:0,rrq:0,index:0,compar:0,section:0,abl:0,tftppacketiniti:0,current:0,"new":0,method:0,next_block:0,full:0,gener:0,here:0,let:0,address:0,path:0,sinc:0,valu:0,wait:0,search:0,serveriniti:0,amount:0,loop:0,permit:0,action:0,implement:0,tftppacketdat:0,via:0,modul:0,filenam:0,api:0,sendack:0,opcod:0,instal:0,from:0,two:0,next:0,call:0,value1:0,msg:0,type:0,until:0,more:0,diamond:0,desir:0,tftpstateserverrecvrrq:0,indic:0,hold:0,must:0,none:0,valuen:0,setup:0,work:0,tftpsession:0,can:0,root:0,listenip:0,overrid:0,share:0,accept:0,alwai:0,end:0,goal:0,add_dup:0,write:0,pure:0,instead:0,negoti:0,simpl:0,updat:0,haven:0,after:0,mai:0,tftppacketrrq:0,data:0,alloc:0,optn:0,stdin:0,explicit:0,correspond:0,caus:0,receiv:0,callabl:0,order:0,tftpy:0,over:0,through:0,still:0,dynam:0,paramet:0,remote_filenam:0,binari:0,tftppackettyp:0,better:0,complex:0,wrq:0,main:0,them:0,"return":0,thei:0,python:0,initi:0,dat:0,packethook:0,front:0,now:0,name:0,opt1:0,level:0,mode:0,timeout:0,each:0,found:0,mean:0,tftpcontextclientdownload:0,expect:0,out:0,variabl:0,network:0,content:0,suitabl:0,tftppacketack:0,tftppacketwrq:0,tftpcontextclientupload:0,standard:0,base:0,dictionari:0,put:0,org:0,"byte":0,unwant:0,tftppacketwithopt:0,think:0,first:0,oper:0,directli:0,onc:0,number:0,alreadi:0,done:0,tftppacket:0,size:0,differ:0,script:0,unknown:0,messag:0,transitori:0,illeg:0,conveni:0,listen:0,udp:0,option:0,copi:0,specifi:0,part:0,pars:0,than:0,serv:0,keyword:0,remot:0,tftpstateserverrecvwrq:0,cleaner:0,rfc1350:0,argument:0,raw:0,have:0,need:0,self:0,violat:0,note:0,also:0,client:0,take:0,which:0,notset:0,singl:0,unless:0,distribut:0,buffer:0,object:0,reach:0,"class":0,don:0,request:0,doe:0,getter:0,pkt:0,session:0,find:0,setter:0,access:0,onli:0,configur:0,should:0,dict:0,local:0,tftpassert:0,senddat:0,pypi:0,gethost:0,requir:0,resend:0,rfc:0,provid:0,common:0,contain:0,senderror:0,set:0,packet:0,see:0,result:0,respons:0,fail:0,tftpcontext:0,wire:0,hopefulli:0,someth:0,state:0,simplest:0,"import":0,parent:0,cycl:0,entir:0,popul:0,tftpmetric:0,handleoack:0,instanc:0,context:0,tftp:0,simpli:0,point:0,instanti:0,hyphen:0,arriv:0,dispatch:0,suppli:0,tftpstatesentrrq:0,throughout:0,quit:0,compos:0,been:0,destructor:0,interpret:0,dup:0,dure:0,ani:0,those:0,"case":0,ident:0,listenport:0,properti:0,defin:0,"while":0,error:0,errmsg:0,pack:0,tftppacketoack:0,stdout:0,metric:0,itself:0,rport:0,perform:0,make:0,same:0,handl:0,html:0,decod:0,document:0,complet:0,finish:0,http:0,tftpcontextserv:0,moment:0,rais:0,user:0,distutil:0,chang:0,ackd:0,appropri:0,off:0,checktimeout:0,inherit:0,exampl:0,thi:0,unchang:0,protocol:0,just:0,file:0,tftproot:0,easi:0,handledat:0,dyn_file_func:0,except:0,add:0,cleanup:0,input:0,save:0,match:0,build:0,bin:0,read:0,tftperror:0,know:0,opc:0,bit:0,like:0,specif:0,server:0,"boolean":0,either:0,output:0,page:0,www:0,some:0,back:0,intern:0,sampl:0,librari:0,subclass:0,condit:0,run:0,host:0,oack:0,"throw":0,socket:0,ack:0,tftpstatesentwrq:0,slightli:0,manag:0,datagram:0,commit:0,block:0,own:0,encod:0,easy_instal:0,log:0,transfer:0,support:0,start:0,tftpstateexpectack:0,interfac:0,includ:0,exceed:0,digitaltorqu:0,"function":0,form:0,regard:0,tftppacketfactori:0,sethost:0,raddress:0,sendoack:0,match_opt:0,whether:0,tftppacketerr:0,creat:0,"abstract":0,doesn:0,repres:0,exist:0,decode_opt:0,pip:0,check:0,when:0,refactor:0,"default":0,other:0,sock_timeout:0,test:0,you:0,tftpstate:0,returnsupportedopt:0,directori:0,tftpboot:0,tftpserver:0,time:0,errorcod:0},titles:["TFTPy"],modules:{"tftpy.TftpServer":0,tftpy:0,"tftpy.TftpShared":0,"tftpy.TftpPacketTypes":0,"tftpy.TftpStates":0,"tftpy.TftpClient":0,"tftpy.TftpPacketFactory":0},descrefs:{"tftpy.TftpPacketFactory.TftpPacketFactory":{parse:[0,0]},"tftpy.TftpShared":{tftpassert:[0,4],setLogLevel:[0,4],TftpException:[0,1],TftpErrors:[0,2]},"tftpy.TftpStates.TftpContextServer":{start:[0,0],end:[0,0]},"tftpy.TftpStates":{TftpContextClientUpload:[0,2],TftpMetrics:[0,2],TftpContextServer:[0,2],TftpState:[0,2],TftpContextClientDownload:[0,2],TftpStateServerStart:[0,2],TftpStateServerRecvRRQ:[0,2],TftpStateExpectACK:[0,2],TftpStateSentWRQ:[0,2],TftpStateSentRRQ:[0,2],TftpStateExpectDAT:[0,2],TftpContext:[0,2],TftpStateServerRecvWRQ:[0,2]},"tftpy.TftpPacketFactory":{TftpPacketFactory:[0,2]},"tftpy.TftpServer":{TftpServer:[0,2]},"tftpy.TftpPacketTypes.TftpPacket":{encode:[0,0],decode:[0,0]},"tftpy.TftpStates.TftpContext":{end:[0,0],checkTimeout:[0,0],sethost:[0,0],host:[0,3],gethost:[0,0],cycle:[0,0]},"tftpy.TftpStates.TftpContextClientDownload":{start:[0,0],end:[0,0]},"tftpy.TftpServer.TftpServer":{listen:[0,0]},"tftpy.TftpStates.TftpMetrics":{add_dup:[0,0]},"tftpy.TftpStates.TftpStateServerRecvRRQ":{handle:[0,0]},"tftpy.TftpClient":{TftpClient:[0,2]},"tftpy.TftpStates.TftpStateExpectDAT":{handle:[0,0]},"tftpy.TftpStates.TftpStateExpectACK":{handle:[0,0]},"tftpy.TftpStates.TftpStateSentRRQ":{handle:[0,0]},"tftpy.TftpStates.TftpState":{sendError:[0,0],handle:[0,0],handleOACK:[0,0],handleDat:[0,0],serverInitial:[0,0],returnSupportedOptions:[0,0],sendACK:[0,0],sendOACK:[0,0],sendDAT:[0,0]},"tftpy.TftpStates.TftpStateServerStart":{handle:[0,0]},"tftpy.TftpStates.TftpStateSentWRQ":{handle:[0,0]},"tftpy.TftpStates.TftpContextClientUpload":{end:[0,0]},"tftpy.TftpPacketTypes.TftpPacketERR":{decode:[0,0],encode:[0,0]},"tftpy.TftpPacketTypes.TftpPacketInitial":{encode:[0,0]},"tftpy.TftpClient.TftpClient":{download:[0,0],upload:[0,0]},"tftpy.TftpPacketTypes":{TftpPacketDAT:[0,2],TftpPacketWRQ:[0,2],TftpPacketERR:[0,2],TftpSession:[0,2],TftpPacketWithOptions:[0,2],TftpPacketOACK:[0,2],TftpPacketACK:[0,2],TftpPacketRRQ:[0,2],TftpPacketInitial:[0,2],TftpPacket:[0,2]},"tftpy.TftpPacketTypes.TftpPacketWithOptions":{decode_options:[0,0]},"tftpy.TftpStates.TftpStateServerRecvWRQ":{handle:[0,0]},"tftpy.TftpPacketTypes.TftpPacketDAT":{encode:[0,0],decode:[0,0]},"tftpy.TftpPacketTypes.TftpPacketOACK":{match_options:[0,0]}},filenames:["index"]}) \ No newline at end of file diff --git a/setup.py b/setup.py index e67fe82..974ada1 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from distutils.core import setup setup(name='tftpy', - version='0.5.0', + version='0.5.1', description='Python TFTP library', author='Michael P. Soulier', author_email='msoulier@digitaltorque.ca',