From 9cd67425e95faab15e57b258a70506b02bccb799 Mon Sep 17 00:00:00 2001 From: Carl Lundin <108372512+clundin25@users.noreply.github.com> Date: Thu, 18 Jan 2024 16:44:17 -0800 Subject: [PATCH] fix: Conditionally import requests only if no request was passed by the caller. (#1456) This resolves https://togithub.com/googleapis/google-auth-library-python/issues/1455. The repo-wide pattern is to only import the requests module at runtime as a fallback. --- google/oauth2/id_token.py | 3 ++- system_tests/secrets.tar.enc | Bin 10324 -> 10324 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/google/oauth2/id_token.py b/google/oauth2/id_token.py index 2b1abec2b..e5dda508d 100644 --- a/google/oauth2/id_token.py +++ b/google/oauth2/id_token.py @@ -62,7 +62,6 @@ from google.auth import environment_vars from google.auth import exceptions from google.auth import jwt -import google.auth.transport.requests # The URL that provides public certificates for verifying ID tokens issued @@ -282,6 +281,8 @@ def fetch_id_token_credentials(audience, request=None): # Create a request object if not provided. if not request: + import google.auth.transport.requests + request = google.auth.transport.requests.Request() if _metadata.ping(request): diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc index bcb6dec2185c05006aa936c861c537a4ca83ca63..61417809cca72f2238d491efa0406c267f15816e 100644 GIT binary patch literal 10324 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