From cfe1aefcbd2534ddc1059a7332842644e6c8d1e4 Mon Sep 17 00:00:00 2001 From: Elvis Pranskevichus Date: Mon, 9 Oct 2017 10:55:54 -0400 Subject: bpo-31681: Make sure pkgutil.get_data closes files properly (#3875) Also remove an obsolete note about backward compat with old Pythons. --- Lib/pkgutil.py | 6 ++---- Misc/NEWS.d/next/Library/2017-10-03-15-41-08.bpo-31681.sOJMKV.rst | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2017-10-03-15-41-08.bpo-31681.sOJMKV.rst diff --git a/Lib/pkgutil.py b/Lib/pkgutil.py index ce072ec..68ca72b 100644 --- a/Lib/pkgutil.py +++ b/Lib/pkgutil.py @@ -1,8 +1,5 @@ """Utilities to support packages.""" -# NOTE: This module must remain compatible with Python 2.3, as it is shared -# by setuptools for distribution with Python 2.3 and up. - import os import sys import imp @@ -252,7 +249,8 @@ class ImpLoader: return mod def get_data(self, pathname): - return open(pathname, "rb").read() + with open(pathname, "rb") as file: + return file.read() def _reopen(self): if self.file and self.file.closed: diff --git a/Misc/NEWS.d/next/Library/2017-10-03-15-41-08.bpo-31681.sOJMKV.rst b/Misc/NEWS.d/next/Library/2017-10-03-15-41-08.bpo-31681.sOJMKV.rst new file mode 100644 index 0000000..b6fc781 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2017-10-03-15-41-08.bpo-31681.sOJMKV.rst @@ -0,0 +1 @@ +Fix pkgutil.get_data to avoid leaking open files. -- cgit v0.12