wrap some things in with blocks

This commit is contained in:
Benjamin Peterson 2010-10-31 18:21:16 +00:00
parent 2d8c917f30
commit a807137c39

View file

@ -406,13 +406,12 @@ class FTP:
The response code.
"""
self.voidcmd('TYPE I')
conn = self.transfercmd(cmd, rest)
with self.transfercmd(cmd, rest) as conn:
while 1:
data = conn.recv(blocksize)
if not data:
break
callback(data)
conn.close()
return self.voidresp()
def retrlines(self, cmd, callback = None):
@ -429,8 +428,8 @@ class FTP:
"""
if callback is None: callback = print_line
resp = self.sendcmd('TYPE A')
conn = self.transfercmd(cmd)
fp = conn.makefile('r', encoding=self.encoding)
with self.transfercmd(cmd) as conn, \
conn.makefile('r', encoding=self.encoding) as fp:
while 1:
line = fp.readline()
if self.debugging > 2: print('*retr*', repr(line))
@ -441,8 +440,6 @@ class FTP:
elif line[-1:] == '\n':
line = line[:-1]
callback(line)
fp.close()
conn.close()
return self.voidresp()
def storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None):
@ -461,13 +458,12 @@ class FTP:
The response code.
"""
self.voidcmd('TYPE I')
conn = self.transfercmd(cmd, rest)
with self.transfercmd(cmd, rest) as conn:
while 1:
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, callback=None):
@ -483,7 +479,7 @@ class FTP:
The response code.
"""
self.voidcmd('TYPE A')
conn = self.transfercmd(cmd)
with self.transfercmd(cmd) as conn:
while 1:
buf = fp.readline()
if not buf: break
@ -492,7 +488,6 @@ class FTP:
buf = buf + B_CRLF
conn.sendall(buf)
if callback: callback(buf)
conn.close()
return self.voidresp()
def acct(self, password):