diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2014-11-23 07:30:07 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2014-11-23 07:30:07 -0500 |
commit | 737f8ffa024563fb8315f94cdf1484aa7bdb6eaa (patch) | |
tree | 4f509ac85244bdb4b251b1134257e0eadb020f62 /coverage | |
parent | df5b3c800fdf4a2eef373196b1f0a166279a3566 (diff) | |
parent | d0a872c92e0e8c6ebb9530c2b61f2b9582612fb4 (diff) | |
download | python-coveragepy-737f8ffa024563fb8315f94cdf1484aa7bdb6eaa.tar.gz |
Merged pull request 43: --skip-covered
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/__init__.py | 4 | ||||
-rw-r--r-- | coverage/backunittest.py | 2 | ||||
-rw-r--r-- | coverage/backward.py | 6 | ||||
-rw-r--r-- | coverage/collector.py | 4 | ||||
-rw-r--r-- | coverage/config.py | 2 | ||||
-rw-r--r-- | coverage/control.py | 14 | ||||
-rw-r--r-- | coverage/execfile.py | 1 | ||||
-rw-r--r-- | coverage/misc.py | 24 | ||||
-rw-r--r-- | coverage/parser.py | 4 | ||||
-rw-r--r-- | coverage/plugin.py | 23 |
10 files changed, 40 insertions, 44 deletions
diff --git a/coverage/__init__.py b/coverage/__init__.py index 67dd6e8..3a52c1d 100644 --- a/coverage/__init__.py +++ b/coverage/__init__.py @@ -34,9 +34,9 @@ def _singleton_method(name): called. """ - # Disable pylint msg W0612, because a bunch of variables look unused, but + # Disable pylint message, because a bunch of variables look unused, but # they're accessed via locals(). - # pylint: disable=W0612 + # pylint: disable=unused-variable def wrapper(*args, **kwargs): """Singleton wrapper around a coverage method.""" diff --git a/coverage/backunittest.py b/coverage/backunittest.py index b2b7ca2..648e74e 100644 --- a/coverage/backunittest.py +++ b/coverage/backunittest.py @@ -3,7 +3,7 @@ # Use unittest2 if it's available, otherwise unittest. This gives us # backported features for 2.6. try: - import unittest2 as unittest # pylint: disable=F0401 + import unittest2 as unittest except ImportError: import unittest diff --git a/coverage/backward.py b/coverage/backward.py index e839f6b..3372a8b 100644 --- a/coverage/backward.py +++ b/coverage/backward.py @@ -2,8 +2,6 @@ # This file does lots of tricky stuff, so disable a bunch of lintisms. # pylint: disable=redefined-builtin -# pylint: disable=import-error -# pylint: disable=no-member # pylint: disable=unused-import # pylint: disable=no-name-in-module @@ -50,7 +48,7 @@ else: if sys.version_info >= (3, 0): # Python 3.2 provides `tokenize.open`, the best way to open source files. import tokenize - open_python_source = tokenize.open # pylint: disable=E1101 + open_python_source = tokenize.open else: def open_python_source(fname): """Open a source file the best way.""" @@ -153,7 +151,7 @@ def import_local_file(modname): break with open(modfile, 'r') as f: - # pylint: disable=W0631 + # pylint: disable=undefined-loop-variable # (Using possibly undefined loop variable 'suff') mod = imp.load_module(modname, f, modfile, suff) diff --git a/coverage/collector.py b/coverage/collector.py index 001bc3d..72a7b7f 100644 --- a/coverage/collector.py +++ b/coverage/collector.py @@ -7,7 +7,7 @@ from coverage.pytracer import PyTracer try: # Use the C extension code when we can, for speed. - from coverage.tracer import CTracer # pylint: disable=F0401,E0611 + from coverage.tracer import CTracer # pylint: disable=no-name-in-module except ImportError: # Couldn't import the C extension, maybe it isn't built. if os.getenv('COVERAGE_TEST_TRACER') == 'c': @@ -24,7 +24,7 @@ except ImportError: CTracer = None try: - import __pypy__ # pylint: disable=import-error + import __pypy__ except ImportError: __pypy__ = None diff --git a/coverage/config.py b/coverage/config.py index ac895f7..9598f74 100644 --- a/coverage/config.py +++ b/coverage/config.py @@ -7,7 +7,7 @@ from coverage.misc import CoverageException # In py3, # ConfigParser was renamed to the more-standard configparser try: - import configparser # pylint: disable=F0401 + import configparser except ImportError: import ConfigParser as configparser diff --git a/coverage/control.py b/coverage/control.py index 79df08d..6ab5b4e 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -9,12 +9,12 @@ from coverage.collector import Collector from coverage.config import CoverageConfig from coverage.data import CoverageData from coverage.debug import DebugControl -from coverage.plugin import CoveragePlugin, Plugins, overrides +from coverage.plugin import CoveragePlugin, Plugins from coverage.files import FileLocator, TreeMatcher, FnmatchMatcher from coverage.files import PathAliases, find_python_files, prep_patterns from coverage.html import HtmlReporter from coverage.misc import CoverageException, bool_or_none, join_regex -from coverage.misc import file_be_gone +from coverage.misc import file_be_gone, overrides from coverage.results import Analysis, Numbers from coverage.summary import SummaryReporter from coverage.xmlreport import XmlReporter @@ -23,7 +23,7 @@ from coverage.xmlreport import XmlReporter # Pypy has some unusual stuff in the "stdlib". Consider those locations # when deciding where the stdlib is. try: - import _structseq # pylint: disable=F0401 + import _structseq except ImportError: _structseq = None @@ -731,8 +731,8 @@ class Coverage(object): return Analysis(self, it) def report(self, morfs=None, show_missing=True, ignore_errors=None, - file=None, # pylint: disable=W0622 - omit=None, include=None, skip_covered=False + file=None, # pylint: disable=redefined-builtin + omit=None, include=None, skip_covered=False, ): """Write a summary report to `file`. @@ -743,15 +743,13 @@ class Coverage(object): match those patterns will be included in the report. Modules matching `omit` will not be included in the report. - `skip_covered` if True report won't print files with 100% coverage. - Returns a float, the total percentage covered. """ self._harvest_data() self.config.from_args( ignore_errors=ignore_errors, omit=omit, include=include, - show_missing=show_missing, skip_covered=skip_covered + show_missing=show_missing, skip_covered=skip_covered, ) reporter = SummaryReporter(self, self.config) return reporter.report(morfs, outfile=file) diff --git a/coverage/execfile.py b/coverage/execfile.py index 82cc221..e7e2071 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -14,7 +14,6 @@ if importlib_util_find_spec: Returns the file path of the module, and the name of the enclosing package. """ - # pylint: disable=no-member try: spec = importlib_util_find_spec(modulename) except ImportError as err: diff --git a/coverage/misc.py b/coverage/misc.py index f9a30bc..f0e043b 100644 --- a/coverage/misc.py +++ b/coverage/misc.py @@ -4,6 +4,7 @@ import errno import hashlib import inspect import os +import sys from coverage.backward import string_class, to_bytes @@ -135,6 +136,29 @@ class Hasher(object): return self.md5.hexdigest() +def overrides(obj, method_name, base_class): + """Does `obj` override the `method_name` it got from `base_class`? + + Determine if `obj` implements the method called `method_name`, which it + inherited from `base_class`. + + Returns a boolean. + + """ + klass = obj.__class__ + klass_func = getattr(klass, method_name) + base_func = getattr(base_class, method_name) + + # Python 2/3 compatibility: Python 2 returns an instancemethod object, the + # function is the .im_func attribute. Python 3 returns a plain function + # object already. + if sys.version_info < (3, 0): + klass_func = klass_func.im_func + base_func = base_func.im_func + + return klass_func is not base_func + + class CoverageException(Exception): """An exception specific to Coverage.""" pass diff --git a/coverage/parser.py b/coverage/parser.py index e7b9c02..8b9cc1e 100644 --- a/coverage/parser.py +++ b/coverage/parser.py @@ -3,7 +3,7 @@ import collections, dis, re, token, tokenize from coverage.backward import StringIO -from coverage.backward import range # pylint: disable=W0622 +from coverage.backward import range # pylint: disable=redefined-builtin from coverage.backward import bytes_to_ints, open_python_source from coverage.bytecode import ByteCodes, CodeObjects from coverage.misc import nice_pair, expensive, join_regex @@ -545,7 +545,7 @@ class ByteParser(object): chunks.append(chunk) # Give all the chunks a length. - chunks[-1].length = bc.next_offset - chunks[-1].byte # pylint: disable=W0631,C0301 + chunks[-1].length = bc.next_offset - chunks[-1].byte for i in range(len(chunks)-1): chunks[i].length = chunks[i+1].byte - chunks[i].byte diff --git a/coverage/plugin.py b/coverage/plugin.py index 3d41aab..1e6e235 100644 --- a/coverage/plugin.py +++ b/coverage/plugin.py @@ -129,26 +129,3 @@ class Plugins(object): def get(self, module): return self.names[module] - - -def overrides(obj, method_name, base_class): - """Does `obj` override the `method_name` it got from `base_class`? - - Determine if `obj` implements the method called `method_name`, which it - inherited from `base_class`. - - Returns a boolean. - - """ - klass = obj.__class__ - klass_func = getattr(klass, method_name) - base_func = getattr(base_class, method_name) - - # Python 2/3 compatibility: Python 2 returns an instancemethod object, the - # function is the .im_func attribute. Python 3 returns a plain function - # object already. - if sys.version_info < (3, 0): - klass_func = klass_func.im_func - base_func = base_func.im_func - - return klass_func is not base_func |