From 6224a804d07119eb228a11d306bf392e3d0b266a Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sat, 19 Oct 2013 21:42:29 -0400 Subject: Now I can use tuples with startswith and endswith. --HG-- branch : 4.0 --- coverage/execfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'coverage/execfile.py') diff --git a/coverage/execfile.py b/coverage/execfile.py index f6ebdf79..5d4ae690 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -94,7 +94,7 @@ def run_python_file(filename, args, package=None): try: # Make a code object somehow. - if filename.endswith(".pyc") or filename.endswith(".pyo"): + if filename.endswith((".pyc", ".pyo")): code = make_code_from_pyc(filename) else: code = make_code_from_py(filename) -- cgit v1.2.1 From 6b6a4488adc12d390c5e0c8f13829dd9bf125309 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 20 Oct 2013 07:58:57 -0400 Subject: with statements: no more finally close --HG-- branch : 4.0 --- coverage/execfile.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'coverage/execfile.py') diff --git a/coverage/execfile.py b/coverage/execfile.py index 5d4ae690..71ec9318 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -129,10 +129,8 @@ def make_code_from_py(filename): except IOError: raise NoSource("No file to run: %r" % filename) - try: + with source_file: source = source_file.read() - finally: - source_file.close() # We have the source. `compile` still needs the last line to be clean, # so make sure it is, then compile a code object from it. @@ -150,7 +148,7 @@ def make_code_from_pyc(filename): except IOError: raise NoCode("No file to run: %r" % filename) - try: + with fpyc: # First four bytes are a version-specific magic number. It has to # match or we won't run the file. magic = fpyc.read(4) @@ -165,7 +163,5 @@ def make_code_from_pyc(filename): # The rest of the file is the code object we want. code = marshal.load(fpyc) - finally: - fpyc.close() return code -- cgit v1.2.1 From 8c3cddefe07e25d96d9e9c4d7ea24b345d88eeec Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 20 Oct 2013 08:05:24 -0400 Subject: try/except/finally is ok now. --HG-- branch : 4.0 --- coverage/execfile.py | 55 ++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 28 deletions(-) (limited to 'coverage/execfile.py') diff --git a/coverage/execfile.py b/coverage/execfile.py index 71ec9318..aec65343 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -31,35 +31,34 @@ def run_python_module(modulename, args): openfile = None glo, loc = globals(), locals() try: - try: - # Search for the module - inside its parent package, if any - using - # standard import mechanics. - if '.' in modulename: - packagename, name = rsplit1(modulename, '.') - package = __import__(packagename, glo, loc, ['__path__']) - searchpath = package.__path__ - else: - packagename, name = None, modulename - searchpath = None # "top-level search" in imp.find_module() + # Search for the module - inside its parent package, if any - using + # standard import mechanics. + if '.' in modulename: + packagename, name = rsplit1(modulename, '.') + package = __import__(packagename, glo, loc, ['__path__']) + searchpath = package.__path__ + else: + packagename, name = None, modulename + searchpath = None # "top-level search" in imp.find_module() + openfile, pathname, _ = imp.find_module(name, searchpath) + + # Complain if this is a magic non-file module. + if openfile is None and pathname is None: + raise NoSource( + "module does not live in a file: %r" % modulename + ) + + # If `modulename` is actually a package, not a mere module, then we + # pretend to be Python 2.7 and try running its __main__.py script. + if openfile is None: + packagename = modulename + name = '__main__' + package = __import__(packagename, glo, loc, ['__path__']) + searchpath = package.__path__ openfile, pathname, _ = imp.find_module(name, searchpath) - - # Complain if this is a magic non-file module. - if openfile is None and pathname is None: - raise NoSource( - "module does not live in a file: %r" % modulename - ) - - # If `modulename` is actually a package, not a mere module, then we - # pretend to be Python 2.7 and try running its __main__.py script. - if openfile is None: - packagename = modulename - name = '__main__' - package = __import__(packagename, glo, loc, ['__path__']) - searchpath = package.__path__ - openfile, pathname, _ = imp.find_module(name, searchpath) - except ImportError: - _, err, _ = sys.exc_info() - raise NoSource(str(err)) + except ImportError: + _, err, _ = sys.exc_info() + raise NoSource(str(err)) finally: if openfile: openfile.close() -- cgit v1.2.1 From 6dfbb755d1f6994ccec9ae56ad7f2eedad2ed0d6 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 20 Oct 2013 08:23:52 -0400 Subject: Except clause can now use 'as', no need for lots of sys.exc_info --HG-- branch : 4.0 --- coverage/execfile.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'coverage/execfile.py') diff --git a/coverage/execfile.py b/coverage/execfile.py index aec65343..f90096e9 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -56,8 +56,7 @@ def run_python_module(modulename, args): package = __import__(packagename, glo, loc, ['__path__']) searchpath = package.__path__ openfile, pathname, _ = imp.find_module(name, searchpath) - except ImportError: - _, err, _ = sys.exc_info() + except ImportError as err: raise NoSource(str(err)) finally: if openfile: -- cgit v1.2.1