summaryrefslogtreecommitdiff
path: root/coverage/misc.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-01-24 17:08:03 -0500
committerNed Batchelder <ned@nedbatchelder.com>2015-01-24 17:08:03 -0500
commite3ec6ed046f33edcfa7f0b03d1a22dc607149d4c (patch)
treea153ec9363cee535130dbdb3c6402781cdc03c49 /coverage/misc.py
parent3ae4d48e9bb6cef7e389e5daba8d4ffc4b46102b (diff)
downloadpython-coveragepy-git-e3ec6ed046f33edcfa7f0b03d1a22dc607149d4c.tar.gz
Move a helper from plugin.py to misc.py
Diffstat (limited to 'coverage/misc.py')
-rw-r--r--coverage/misc.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/coverage/misc.py b/coverage/misc.py
index 02fb10ef..17fb3df9 100644
--- a/coverage/misc.py
+++ b/coverage/misc.py
@@ -162,6 +162,24 @@ def overrides(obj, method_name, base_class):
return klass_func is not base_func
+# TODO: abc?
+def _needs_to_implement(that, func_name):
+ """Helper to raise NotImplementedError in interface stubs."""
+ if hasattr(that, "plugin_name"):
+ thing = "Plugin"
+ name = that.plugin_name
+ else:
+ thing = "Class"
+ klass = that.__class__
+ name = "{klass.__module__}.{klass.__name__}".format(klass=klass)
+
+ raise NotImplementedError(
+ "{thing} {name!r} needs to implement {func_name}()".format(
+ thing=thing, name=name, func_name=func_name
+ )
+ )
+
+
class CoverageException(Exception):
"""An exception specific to Coverage."""
pass