Source code for dclab.rtdc_dataset.feat_anc_ml.ml_libs

from distutils.version import LooseVersion
import importlib


class MockPackage:
    def __init__(self, name, min_version):
        self.name = name
        self.min_version = min_version

    def __getattr__(self, item):
        raise ImportError(f"Please install '{self.name}>={self.min_version}'!")


[docs]def import_or_mock_package(name, min_version): if name not in _locals: try: _mod = importlib.import_module(name) if LooseVersion(_mod.__version__) < LooseVersion(min_version): raise ValueError(f"Please install '{name}>={min_version}'!") except ImportError: _mod = MockPackage(name, min_version) else: _mod = _locals[name] _locals[name] = _mod return _mod
_locals = locals()