Source code for openff.evaluator.plugins

"""
A collection of convenience utilities for loading the built-in
'plugins', such as workflow protocols, calculation layers and
physical properties.
"""
import importlib
import logging
import pkgutil

import pkg_resources

logger = logging.getLogger(__name__)


[docs]def register_default_plugins(): """Registers the built-in workflow protocols, calculation layers and physical properties with the plugin system. """ # Import the default properties. importlib.import_module("openff.evaluator.properties") # Import the default layers importlib.import_module("openff.evaluator.layers.simulation") importlib.import_module("openff.evaluator.layers.reweighting") # Import the default workflow protocols. protocols_module = importlib.import_module("openff.evaluator.protocols") for _, module_name, _ in pkgutil.iter_modules(protocols_module.__path__): importlib.import_module(f"openff.evaluator.protocols.{module_name}")
[docs]def register_external_plugins(): """Registers any supported plugins found in external packages with the plugin system. """ for entry_point in pkg_resources.iter_entry_points("openff_evaluator.plugins"): try: entry_point.load() except ImportError: logger.exception(f"Could not load the {entry_point} plugin")