summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libimp.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/lib/libimp.tex')
-rw-r--r--Doc/lib/libimp.tex23
1 files changed, 13 insertions, 10 deletions
diff --git a/Doc/lib/libimp.tex b/Doc/lib/libimp.tex
index 2e72602..4456814 100644
--- a/Doc/lib/libimp.tex
+++ b/Doc/lib/libimp.tex
@@ -158,14 +158,17 @@ def __import__(name, globals=None, locals=None, fromlist=None):
fp, pathname, (suffix, mode, type) = imp.find_module(name)
# See what we got.
- # Note that fp will be closed automatically when we return.
- if type == imp.C_EXTENSION:
- return imp.load_dynamic(name, pathname)
- if type == imp.PY_SOURCE:
- return imp.load_source(name, pathname, fp)
- if type == imp.PY_COMPILED:
- return imp.load_compiled(name, pathname, fp)
-
- # Shouldn't get here at all.
- raise ImportError, '%s: unknown module type (%d)' % (name, type)
+ try:
+ if type == imp.C_EXTENSION:
+ return imp.load_dynamic(name, pathname)
+ if type == imp.PY_SOURCE:
+ return imp.load_source(name, pathname, fp)
+ if type == imp.PY_COMPILED:
+ return imp.load_compiled(name, pathname, fp)
+
+ # Shouldn't get here at all.
+ raise ImportError, '%s: unknown module type (%d)' % (name, type)
+ finally:
+ # Since we may exit via an exception, close fp explicitly.
+ fp.close()
\end{verbatim}