diff --git a/requirements.txt b/requirements.txt index a54de5dd0dd038dffa005647903ab4e9af40ccb0..7cdd5e0c6ba9c23a2f8fbf7816c6fbb139b4915a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -69,8 +69,6 @@ yappi==1.3.3 ssh2-python==0.26.0; extra == "activator" # Classifier bitarray==2.3.4; extra == "classifier" -# esmre==0.5.2; extra == "classifier" -https://github.com/wharris/esmre/archive/refs/heads/main.zip # Cache-Redis hiredis==1.1.0; extra == "cache-redis" redis==3.5.3; extra == "cache-redis" diff --git a/services/classifier/xrulelookup.py b/services/classifier/xrulelookup.py index f9c8be50386f26bfef6b524156020516828e034b..42d27abe7d32a5b6afcbefa6ff9fa53a8cccc13a 100644 --- a/services/classifier/xrulelookup.py +++ b/services/classifier/xrulelookup.py @@ -13,7 +13,13 @@ import cachetools import sre_parse # Third-party modules -import esmre as esm +# Manually setup esmre==1.0.0 +try: + import esmre as esm +except (ModuleNotFoundError, ImportError): + raise NotImplementedError( + "XRuleLookup needed ESMRE library for worked. Please, install it from pip" + ) import bitarray # NOC modules diff --git a/tests/test_py_module.py b/tests/test_py_module.py index a264e0dfa17785aa0332c43700fba0f0469444e5..a19a1b7a21acf8089a5353f5eba0992ecbdff808 100644 --- a/tests/test_py_module.py +++ b/tests/test_py_module.py @@ -87,7 +87,7 @@ def test_import(module): try: m = __import__(module, {}, {}, "*") assert m - except ImportError as e: + except (ImportError, ModuleNotFoundError, NotImplementedError) as e: if _allow_xfail(module): pytest.xfail(str(e)) else: @@ -100,7 +100,7 @@ def test_module_empty_docstrings(module): m = __import__(module, {}, {}, "*") if m.__doc__ is not None and not m.__doc__.strip(): pytest.xfail("Module-level docstring must not be empty") - except ImportError as e: + except (ImportError, ModuleNotFoundError, NotImplementedError) as e: if _allow_xfail(module): pytest.xfail(str(e)) else: