summaryrefslogtreecommitdiff
path: root/coverage/control.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-06-13 08:22:00 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-06-13 08:22:00 -0400
commit5416b815eb4ce3d525868b17d5b3fa1e92fcad6c (patch)
tree7539c40e31afd1594361e9f2c2eaa8c77bb72795 /coverage/control.py
parenta654104c04b55fd9902a318cbbeeb3603959ebee (diff)
downloadpython-coveragepy-5416b815eb4ce3d525868b17d5b3fa1e92fcad6c.tar.gz
Move plugin support stuff into plugin_support.py
Diffstat (limited to 'coverage/control.py')
-rw-r--r--coverage/control.py49
1 files changed, 1 insertions, 48 deletions
diff --git a/coverage/control.py b/coverage/control.py
index d05b844..9256edb 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -24,6 +24,7 @@ from coverage.misc import CoverageException, bool_or_none, join_regex
from coverage.misc import file_be_gone, overrides
from coverage.monkey import patch_multiprocessing
from coverage.plugin import CoveragePlugin, FileReporter
+from coverage.plugin_support import Plugins
from coverage.python import PythonFileReporter
from coverage.results import Analysis, Numbers
from coverage.summary import SummaryReporter
@@ -1163,51 +1164,3 @@ def process_startup():
# A hack for debugging testing in sub-processes.
_TEST_NAME_FILE = "" # "/tmp/covtest.txt"
-
-
-class Plugins(object):
- """The currently loaded collection of coverage.py plugins."""
-
- def __init__(self):
- self.order = []
- self.names = {}
-
- @classmethod
- def load_plugins(cls, modules, config):
- """Load plugins from `modules`.
-
- Returns a list of loaded and configured plugins.
-
- """
- plugins = cls()
-
- for module in modules:
- __import__(module)
- mod = sys.modules[module]
-
- plugin_class = getattr(mod, "Plugin", None)
- if plugin_class:
- options = config.get_plugin_options(module)
- plugin = plugin_class(options)
- plugin._coverage_plugin_name = module
- plugin._coverage_enabled = True
- plugins.order.append(plugin)
- plugins.names[module] = plugin
- else:
- raise CoverageException(
- "Plugin module %r didn't define a Plugin class" % module
- )
-
- return plugins
-
- def __nonzero__(self):
- return bool(self.order)
-
- __bool__ = __nonzero__
-
- def __iter__(self):
- return iter(self.order)
-
- def get(self, plugin_name):
- """Return a plugin by name."""
- return self.names[plugin_name]