--- /usr/lib64/python2.4/ftplib.py 2006-06-13 08:46:33.000000000 -0700 +++ /tmp/ftplib.py 2006-07-03 11:01:12.000000000 -0700 @@ -29,6 +29,8 @@ """ # +# Modified storbinary and storlines to optionally accept +# a callback function by Phil Schwartz # Changes and improvements suggested by Steve Majewski. # Modified by Jack to work on the mac. # Modified by Siebren to support docstrings and PASV. @@ -409,7 +411,7 @@ conn.close() return self.voidresp() - def storbinary(self, cmd, fp, blocksize=8192): + def storbinary(self, cmd, fp, blocksize=8192, callback=None): '''Store a file in binary mode.''' self.voidcmd('TYPE I') conn = self.transfercmd(cmd) @@ -417,10 +419,11 @@ buf = fp.read(blocksize) if not buf: break conn.sendall(buf) + if callback: callback(buf) conn.close() return self.voidresp() - def storlines(self, cmd, fp): + def storlines(self, cmd, fp, callback=None): '''Store a file in line mode.''' self.voidcmd('TYPE A') conn = self.transfercmd(cmd) @@ -431,6 +434,7 @@ if buf[-1] in CRLF: buf = buf[:-1] buf = buf + CRLF conn.sendall(buf) + if callback: callback(buf) conn.close() return self.voidresp()