diff options
| author | Éric Araujo <merwok@netwok.org> | 2011-07-08 15:22:19 (GMT) |
|---|---|---|
| committer | Éric Araujo <merwok@netwok.org> | 2011-07-08 15:22:19 (GMT) |
| commit | 4468e55d4bd2a9ac4c6aeaffeb99653b7737ebd6 (patch) | |
| tree | d09de80ea8f28dec7d463e4f653a590c5b43709b /Lib/packaging/database.py | |
| parent | ce5fe83878c56ac17007e88148714ee523e64c94 (diff) | |
| download | cpython-4468e55d4bd2a9ac4c6aeaffeb99653b7737ebd6.zip cpython-4468e55d4bd2a9ac4c6aeaffeb99653b7737ebd6.tar.gz cpython-4468e55d4bd2a9ac4c6aeaffeb99653b7737ebd6.tar.bz2 | |
Close file handles in a timely manner in packaging.database (#12504).
This fixes a bug with the remove (uninstall) feature on Windows. Patch
by Thomas Holmes.
Diffstat (limited to 'Lib/packaging/database.py')
| -rw-r--r-- | Lib/packaging/database.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Lib/packaging/database.py b/Lib/packaging/database.py index 67946a2..c71d608 100644 --- a/Lib/packaging/database.py +++ b/Lib/packaging/database.py @@ -158,17 +158,18 @@ class Distribution: self.name, self.version, self.path) def _get_records(self, local=False): + results = [] with self.get_distinfo_file('RECORD') as record: record_reader = csv.reader(record, delimiter=',', lineterminator='\n') - # XXX needs an explaining comment for row in record_reader: - path, checksum, size = (row[:] + - [None for i in range(len(row), 3)]) + missing = [None for i in range(len(row), 3)] + path, checksum, size = row + missing if local: path = path.replace('/', os.sep) path = os.path.join(sys.prefix, path) - yield path, checksum, size + results.append((path, checksum, size)) + return results def get_resource_path(self, relative_path): with self.get_distinfo_file('RESOURCES') as resources_file: @@ -197,7 +198,8 @@ class Distribution: :type local: boolean :returns: iterator of (path, md5, size) """ - return self._get_records(local) + for result in self._get_records(local): + yield result def uses(self, path): """ |
