diff --git a/src/caosdb/connection/authentication/keyring.py b/src/caosdb/connection/authentication/keyring.py index d8be7ddf030577545230c9111fdad542b6d6e7e2..99d184136c20b23557efea0b54c648095a8d3ab2 100644 --- a/src/caosdb/connection/authentication/keyring.py +++ b/src/caosdb/connection/authentication/keyring.py @@ -28,7 +28,7 @@ retrieve the password. """ import sys -import imp +import importlib from getpass import getpass from caosdb.exceptions import ConfigurationError from .external_credentials_provider import ExternalCredentialsProvider @@ -52,17 +52,13 @@ def get_authentication_provider(): def _get_external_keyring(): try: - fil, pathname, desc = imp.find_module("keyring", sys.path[1:]) - module = imp.load_module("external_keyring", fil, pathname, desc) - return module + return importlib.import_module("keyring") except ImportError: raise RuntimeError( "The keyring password method requires installation of the" "keyring python package. On linux with python < 3.5, " "this requires the installation of dbus-python as a " "system package.") - finally: - fil.close() def _call_keyring(**config): @@ -74,7 +70,6 @@ def _call_keyring(**config): url = config.get("url") username = config.get("username") app = "caosdb — {}".format(url) - password = _call_keyring(app=app, username=username) external_keyring = _get_external_keyring() password = external_keyring.get_password(app, username) if password is None: