diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2019-10-27 19:54:42 -0400 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2019-10-27 20:25:21 -0400 |
| commit | 773f1ec3c2622a78ee0280eb1d2b03c60871c52b (patch) | |
| tree | 2d7cc4a9d7d24ec2354d61925575b36103ac7862 /setuptools/depends.py | |
| parent | 85a9ca5e75abf00e0dde55dde4e2b0a11f93c04a (diff) | |
| download | python-setuptools-git-773f1ec3c2622a78ee0280eb1d2b03c60871c52b.tar.gz | |
Rely on contextlib.closing for brevity.
Diffstat (limited to 'setuptools/depends.py')
| -rw-r--r-- | setuptools/depends.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/setuptools/depends.py b/setuptools/depends.py index eed4913a..a37675cb 100644 --- a/setuptools/depends.py +++ b/setuptools/depends.py @@ -1,5 +1,6 @@ import sys import marshal +import contextlib from distutils.version import StrictVersion from .py33compat import Bytecode @@ -81,6 +82,17 @@ class Require: return self.version_ok(version) +def maybe_close(f): + @contextlib.contextmanager + def empty(): + yield + return + if not f: + return empty() + + return contextlib.closing(f) + + def get_module_constant(module, symbol, default=-1, paths=None): """Find 'module' by searching 'paths', and extract 'symbol' @@ -94,7 +106,7 @@ def get_module_constant(module, symbol, default=-1, paths=None): # Module doesn't exist return None - try: + with maybe_close(f): if kind == PY_COMPILED: f.read(8) # skip magic & date code = marshal.load(f) @@ -107,10 +119,6 @@ def get_module_constant(module, symbol, default=-1, paths=None): imported = py27compat.get_module(module, paths, info) return getattr(imported, symbol, None) - finally: - if f: - f.close() - return extract_constant(code, symbol, default) |
