Wiadomość napisana przez Benjamin Peterson w dniu 2010-11-23, o godz. 00:47: > No test? > The tests were there already, raising ResourceWarnings. After this change, they stopped doing that. You may say: now they pass for the first time :) Best regards, Łukasz > 2010/11/22 lukasz.langa <python-checkins at python.org>: >> Author: lukasz.langa >> Date: Tue Nov 23 00:31:26 2010 >> New Revision: 86699 >> >> Log: >> Issue #9846: ZipExtFile provides no mechanism for closing the underlying file object >> >> >> >> Modified: >> python/branches/py3k/Lib/zipfile.py >> >> Modified: python/branches/py3k/Lib/zipfile.py >> ============================================================================== >> --- python/branches/py3k/Lib/zipfile.py (original) >> +++ python/branches/py3k/Lib/zipfile.py Tue Nov 23 00:31:26 2010 >> @@ -473,9 +473,11 @@ >> # Search for universal newlines or line chunks. >> PATTERN = re.compile(br'^(?P<chunk>[^\r\n]+)|(?P<newline>\n|\r\n?)') >> >> - def __init__(self, fileobj, mode, zipinfo, decrypter=None): >> + def __init__(self, fileobj, mode, zipinfo, decrypter=None, >> + close_fileobj=False): >> self._fileobj = fileobj >> self._decrypter = decrypter >> + self._close_fileobj = close_fileobj >> >> self._compress_type = zipinfo.compress_type >> self._compress_size = zipinfo.compress_size >> @@ -647,6 +649,12 @@ >> self._offset += len(data) >> return data >> >> + def close(self): >> + try: >> + if self._close_fileobj: >> + self._fileobj.close() >> + finally: >> + super().close() >> >> >> class ZipFile: >> @@ -889,8 +897,10 @@ >> # given a file object in the constructor >> if self._filePassed: >> zef_file = self.fp >> + should_close = False >> else: >> zef_file = io.open(self.filename, 'rb') >> + should_close = True >> >> # Make sure we have an info object >> if isinstance(name, ZipInfo): >> @@ -944,7 +954,7 @@ >> if h[11] != check_byte: >> raise RuntimeError("Bad password for file", name) >> >> - return ZipExtFile(zef_file, mode, zinfo, zd) >> + return ZipExtFile(zef_file, mode, zinfo, zd, close_fileobj=should_close) >> >> def extract(self, member, path=None, pwd=None): >> """Extract a member from the archive to the current working directory, >> _______________________________________________ >> Python-checkins mailing list >> Python-checkins at python.org >> http://mail.python.org/mailman/listinfo/python-checkins >> > > > > -- > Regards, > Benjamin > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins -- Pozdrawiam serdecznie, Łukasz Langa tel. +48 791 080 144 WWW http://lukasz.langa.pl/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20101123/5cb7412d/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4