Skip to content

Commit a807137

Browse files
committed
wrap some things in with blocks
1 parent 2d8c917 commit a807137

1 file changed

Lines changed: 33 additions & 38 deletions

File tree

Lib/ftplib.py

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -406,13 +406,12 @@ def retrbinary(self, cmd, callback, blocksize=8192, rest=None):
406406
The response code.
407407
"""
408408
self.voidcmd('TYPE I')
409-
conn = self.transfercmd(cmd, rest)
410-
while 1:
411-
data = conn.recv(blocksize)
412-
if not data:
413-
break
414-
callback(data)
415-
conn.close()
409+
with self.transfercmd(cmd, rest) as conn:
410+
while 1:
411+
data = conn.recv(blocksize)
412+
if not data:
413+
break
414+
callback(data)
416415
return self.voidresp()
417416

418417
def retrlines(self, cmd, callback = None):
@@ -429,20 +428,18 @@ def retrlines(self, cmd, callback = None):
429428
"""
430429
if callback is None: callback = print_line
431430
resp = self.sendcmd('TYPE A')
432-
conn = self.transfercmd(cmd)
433-
fp = conn.makefile('r', encoding=self.encoding)
434-
while 1:
435-
line = fp.readline()
436-
if self.debugging > 2: print('*retr*', repr(line))
437-
if not line:
438-
break
439-
if line[-2:] == CRLF:
440-
line = line[:-2]
441-
elif line[-1:] == '\n':
442-
line = line[:-1]
443-
callback(line)
444-
fp.close()
445-
conn.close()
431+
with self.transfercmd(cmd) as conn, \
432+
conn.makefile('r', encoding=self.encoding) as fp:
433+
while 1:
434+
line = fp.readline()
435+
if self.debugging > 2: print('*retr*', repr(line))
436+
if not line:
437+
break
438+
if line[-2:] == CRLF:
439+
line = line[:-2]
440+
elif line[-1:] == '\n':
441+
line = line[:-1]
442+
callback(line)
446443
return self.voidresp()
447444

448445
def storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None):
@@ -461,13 +458,12 @@ def storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None):
461458
The response code.
462459
"""
463460
self.voidcmd('TYPE I')
464-
conn = self.transfercmd(cmd, rest)
465-
while 1:
466-
buf = fp.read(blocksize)
467-
if not buf: break
468-
conn.sendall(buf)
469-
if callback: callback(buf)
470-
conn.close()
461+
with self.transfercmd(cmd, rest) as conn:
462+
while 1:
463+
buf = fp.read(blocksize)
464+
if not buf: break
465+
conn.sendall(buf)
466+
if callback: callback(buf)
471467
return self.voidresp()
472468

473469
def storlines(self, cmd, fp, callback=None):
@@ -483,16 +479,15 @@ def storlines(self, cmd, fp, callback=None):
483479
The response code.
484480
"""
485481
self.voidcmd('TYPE A')
486-
conn = self.transfercmd(cmd)
487-
while 1:
488-
buf = fp.readline()
489-
if not buf: break
490-
if buf[-2:] != B_CRLF:
491-
if buf[-1] in B_CRLF: buf = buf[:-1]
492-
buf = buf + B_CRLF
493-
conn.sendall(buf)
494-
if callback: callback(buf)
495-
conn.close()
482+
with self.transfercmd(cmd) as conn:
483+
while 1:
484+
buf = fp.readline()
485+
if not buf: break
486+
if buf[-2:] != B_CRLF:
487+
if buf[-1] in B_CRLF: buf = buf[:-1]
488+
buf = buf + B_CRLF
489+
conn.sendall(buf)
490+
if callback: callback(buf)
496491
return self.voidresp()
497492

498493
def acct(self, password):

0 commit comments

Comments
 (0)