diff --git a/src/huggingface_hub/utils/_hf_folder.py b/src/huggingface_hub/utils/_hf_folder.py index 5c9f07c9ba..77daced7e8 100644 --- a/src/huggingface_hub/utils/_hf_folder.py +++ b/src/huggingface_hub/utils/_hf_folder.py @@ -65,11 +65,14 @@ def get_token(cls) -> Optional[str]: # 1. Is it set by environment variable ? token: Optional[str] = os.environ.get("HUGGING_FACE_HUB_TOKEN") if token is not None: + token = token.replace("\r", "").replace("\n", "").strip() return token # 2. Is it set in token path ? try: - return cls.path_token.read_text() + token = cls.path_token.read_text() + token = token.replace("\r", "").replace("\n", "").strip() + return token except FileNotFoundError: return None diff --git a/tests/test_utils_hf_folder.py b/tests/test_utils_hf_folder.py index 7a1bcf19da..ce0448ec49 100644 --- a/tests/test_utils_hf_folder.py +++ b/tests/test_utils_hf_folder.py @@ -83,3 +83,12 @@ def test_token_in_old_path(self): # Un-patch new_patcher.stop() old_patcher.stop() + + def test_token_strip(self): + """ + Test the workflow when the token is mistakenly finishing with new-line or space character. + """ + token = _generate_token() + HfFolder.save_token(" " + token + "\n") + self.assertEqual(HfFolder.get_token(), token) + HfFolder.delete_token()