Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

Commit 8e0bc8d

Browse files
Merge branch 'main' into mtls-async-support
2 parents 4013354 + 6aab8bc commit 8e0bc8d

File tree

6 files changed

+285
-47
lines changed

6 files changed

+285
-47
lines changed

.github/CODEOWNERS

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,27 @@
44
# For syntax help see:
55
# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax
66

7-
# The @googleapis/googleapis-auth and @googleapis/python-core-client-libraries is the default owner for changes in this repo
8-
* @googleapis/googleapis-auth @googleapis/python-core-client-libraries
9-
google/auth/_default.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
10-
google/auth/aws.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
11-
google/auth/credentials.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
12-
google/auth/downscoped.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
13-
google/auth/external_account.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
14-
google/auth/external_account_authorized_user.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
15-
google/auth/identity_pool.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
16-
google/auth/pluggable.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
17-
google/auth/sts.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
18-
google/auth/impersonated_credentials.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
19-
tests/test__default.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
20-
tests/test_aws.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
21-
tests/test_credentials.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
22-
tests/test_downscoped.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
23-
tests/test_external_account.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
24-
tests/test_external_account_authorized_user.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
25-
tests/test_identity_pool.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
26-
tests/test_pluggable.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
27-
tests/test_sts.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
28-
tests/test_impersonated_credentials.py @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-core-client-libraries
29-
/samples/ @googleapis/googleapis-auth @googleapis/aion-sdk @googleapis/python-samples-owners @googleapis/python-core-client-libraries
7+
# The @googleapis/googleapis-auth and @googleapis/cloud-sdk-python-team is the default owner for changes in this repo
8+
* @googleapis/googleapis-auth @googleapis/cloud-sdk-python-team
9+
google/auth/_default.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
10+
google/auth/aws.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
11+
google/auth/credentials.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
12+
google/auth/downscoped.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
13+
google/auth/external_account.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
14+
google/auth/external_account_authorized_user.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
15+
google/auth/identity_pool.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
16+
google/auth/pluggable.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
17+
google/auth/sts.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
18+
google/auth/impersonated_credentials.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
19+
tests/test__default.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
20+
tests/test_aws.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
21+
tests/test_credentials.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
22+
tests/test_downscoped.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
23+
tests/test_external_account.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
24+
tests/test_external_account_authorized_user.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
25+
tests/test_identity_pool.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
26+
tests/test_pluggable.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
27+
tests/test_sts.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
28+
tests/test_impersonated_credentials.py @googleapis/googleapis-auth @googleapis/aion-team @googleapis/cloud-sdk-python-team
29+
/samples/ @googleapis/googleapis-auth @googleapis/aion-team @googleapis/python-samples-owners @googleapis/cloud-sdk-python-team
3030
system_tests/secrets.tar.enc # Remove noise from test creds.

google/auth/aio/transport/aiohttp.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
"""Transport adapter for Asynchronous HTTP Requests based on aiohttp.
16-
"""
15+
"""Transport adapter for Asynchronous HTTP Requests based on aiohttp."""
1716

1817
import asyncio
1918
import logging
20-
from typing import AsyncGenerator, Mapping, Optional
19+
from typing import AsyncGenerator, Mapping, Optional, TYPE_CHECKING, Union
2120

2221
try:
2322
import aiohttp # type: ignore
@@ -31,6 +30,15 @@
3130
from google.auth.aio import _helpers as _helpers_async
3231
from google.auth.aio import transport
3332

33+
if TYPE_CHECKING: # pragma: NO COVER
34+
from aiohttp import ClientTimeout # type: ignore
35+
36+
else:
37+
try:
38+
from aiohttp import ClientTimeout
39+
except (ImportError, AttributeError):
40+
ClientTimeout = None
41+
3442
_LOGGER = logging.getLogger(__name__)
3543

3644

@@ -123,7 +131,7 @@ async def __call__(
123131
method: str = "GET",
124132
body: Optional[bytes] = None,
125133
headers: Optional[Mapping[str, str]] = None,
126-
timeout: float = transport._DEFAULT_TIMEOUT_SECONDS,
134+
timeout: Union[float, ClientTimeout] = transport._DEFAULT_TIMEOUT_SECONDS,
127135
**kwargs,
128136
) -> transport.Response:
129137
"""
@@ -158,7 +166,10 @@ async def __call__(
158166
if not self._session:
159167
self._session = aiohttp.ClientSession()
160168

161-
client_timeout = aiohttp.ClientTimeout(total=timeout)
169+
if isinstance(timeout, aiohttp.ClientTimeout):
170+
client_timeout = timeout
171+
else:
172+
client_timeout = aiohttp.ClientTimeout(total=timeout)
162173
_helpers.request_log(_LOGGER, method, url, body, headers)
163174
response = await self._session.request(
164175
method,
@@ -176,8 +187,12 @@ async def __call__(
176187
raise client_exc from caught_exc
177188

178189
except asyncio.TimeoutError as caught_exc:
190+
if isinstance(timeout, aiohttp.ClientTimeout):
191+
timeout_seconds = timeout.total
192+
else:
193+
timeout_seconds = timeout
179194
timeout_exc = exceptions.TimeoutError(
180-
f"Request timed out after {timeout} seconds."
195+
f"Request timed out after {timeout_seconds} seconds."
181196
)
182197
raise timeout_exc from caught_exc
183198

0 commit comments

Comments
 (0)