From 9f536c51db63f183d7569974326cd8341d6e0922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Thu, 9 Jan 2025 13:15:01 +0100 Subject: [PATCH 1/2] Improve import time of the `secrets` module. Importing `secrets` is now two times faster. The `base64` module is now locally imported by `secrets.token_urlsafe` and is no more implicitly exposed as `secrets.base64`. --- Lib/secrets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/secrets.py b/Lib/secrets.py index 566a09b7311154..8766c5728fd6a0 100644 --- a/Lib/secrets.py +++ b/Lib/secrets.py @@ -12,8 +12,6 @@ ] -import base64 - from hmac import compare_digest from random import SystemRandom @@ -67,5 +65,7 @@ def token_urlsafe(nbytes=None): 'Drmhze6EPcv0fN_81Bj-nA' """ + import base64 + tok = token_bytes(nbytes) return base64.urlsafe_b64encode(tok).rstrip(b'=').decode('ascii') From 0c009fa04ce66adf64ac9e7b5f32d5ebc5a63625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:24:51 +0100 Subject: [PATCH 2/2] blurb --- .../next/Library/2025-01-10-12-19-42.gh-issue-118761.i4yXe3.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2025-01-10-12-19-42.gh-issue-118761.i4yXe3.rst diff --git a/Misc/NEWS.d/next/Library/2025-01-10-12-19-42.gh-issue-118761.i4yXe3.rst b/Misc/NEWS.d/next/Library/2025-01-10-12-19-42.gh-issue-118761.i4yXe3.rst new file mode 100644 index 00000000000000..4b7aee6c5b8253 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-01-10-12-19-42.gh-issue-118761.i4yXe3.rst @@ -0,0 +1,2 @@ +Improve import time of :mod:`secrets` by a factor two. This is achieved by +importing :mod:`base64` on demand. Patch by Bénédikt Tran.