[Python-checkins] cpython: fix #13563: make use of with statement in ftplib.py where needed

giampaolo.rodola python-checkins at python.org
Sat Dec 10 21:25:09 CET 2011


http://hg.python.org/cpython/rev/6cd736239b8a
changeset: 73929:6cd736239b8a
user: Giampaolo Rodola' <g.rodola at gmail.com>
date: Sat Dec 10 21:25:04 2011 +0100
summary:
 fix #13563: make use of with statement in ftplib.py where needed
files:
 Lib/ftplib.py | 25 +++++--------------------
 1 files changed, 5 insertions(+), 20 deletions(-)
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -359,8 +359,7 @@
 conn.close()
 raise
 else:
- sock = self.makeport()
- try:
+ with self.makeport() as sock:
 if rest is not None:
 self.sendcmd("REST %s" % rest)
 resp = self.sendcmd(cmd)
@@ -372,8 +371,6 @@
 conn, sockaddr = sock.accept()
 if self.timeout is not _GLOBAL_DEFAULT_TIMEOUT:
 conn.settimeout(self.timeout)
- finally:
- sock.close()
 if resp[:3] == '150':
 # this is conditional in case we received a 125
 size = parse150(resp)
@@ -753,8 +750,7 @@
 
 def retrbinary(self, cmd, callback, blocksize=8192, rest=None):
 self.voidcmd('TYPE I')
- conn = self.transfercmd(cmd, rest)
- try:
+ with self.transfercmd(cmd, rest) as conn:
 while 1:
 data = conn.recv(blocksize)
 if not data:
@@ -763,8 +759,6 @@
 # shutdown ssl layer
 if isinstance(conn, ssl.SSLSocket):
 conn.unwrap()
- finally:
- conn.close()
 return self.voidresp()
 
 def retrlines(self, cmd, callback = None):
@@ -772,7 +766,7 @@
 resp = self.sendcmd('TYPE A')
 conn = self.transfercmd(cmd)
 fp = conn.makefile('r', encoding=self.encoding)
- try:
+ with fp, conn:
 while 1:
 line = fp.readline()
 if self.debugging > 2: print('*retr*', repr(line))
@@ -786,15 +780,11 @@
 # shutdown ssl layer
 if isinstance(conn, ssl.SSLSocket):
 conn.unwrap()
- finally:
- fp.close()
- conn.close()
 return self.voidresp()
 
 def storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None):
 self.voidcmd('TYPE I')
- conn = self.transfercmd(cmd, rest)
- try:
+ with self.transfercmd(cmd, rest) as conn:
 while 1:
 buf = fp.read(blocksize)
 if not buf: break
@@ -803,14 +793,11 @@
 # shutdown ssl layer
 if isinstance(conn, ssl.SSLSocket):
 conn.unwrap()
- finally:
- conn.close()
 return self.voidresp()
 
 def storlines(self, cmd, fp, callback=None):
 self.voidcmd('TYPE A')
- conn = self.transfercmd(cmd)
- try:
+ with self.transfercmd(cmd) as conn:
 while 1:
 buf = fp.readline()
 if not buf: break
@@ -822,8 +809,6 @@
 # shutdown ssl layer
 if isinstance(conn, ssl.SSLSocket):
 conn.unwrap()
- finally:
- conn.close()
 return self.voidresp()
 
 def abort(self):
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /