From a66935a25cac5e49cfd1d087fa15b551fe18d5ba Mon Sep 17 00:00:00 2001 From: real-yfprojects Date: Mon, 24 Jul 2023 08:06:06 +0200 Subject: [PATCH] Catch `KeyringError` and `RuntimeError` when accessing keyring. * src/poetry/utils/password_manager.py (PoetryKeyring.get_credential) --- src/poetry/utils/password_manager.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/poetry/utils/password_manager.py b/src/poetry/utils/password_manager.py index abba9b01235..166386f4565 100644 --- a/src/poetry/utils/password_manager.py +++ b/src/poetry/utils/password_manager.py @@ -47,12 +47,18 @@ def get_credential( import keyring + from keyring.errors import KeyringError + from keyring.errors import KeyringLocked + for name in names: + credential = None try: credential = keyring.get_credential(name, username) - except keyring.errors.KeyringLocked: + except KeyringLocked: logger.debug("Keyring %s is locked", name) - credential = None + except (KeyringError, RuntimeError): + logger.debug("Accessing keyring %s failed", name, exc_info=True) + if credential: return HTTPAuthCredential( username=credential.username, password=credential.password