Bump to aiohttp 3.8.0 (#58974)
This commit is contained in:
parent
23cb396aad
commit
10d6247fee
106 changed files with 221 additions and 142 deletions
67
homeassistant/async_timeout_backcompat.py
Normal file
67
homeassistant/async_timeout_backcompat.py
Normal file
|
@ -0,0 +1,67 @@
|
|||
"""Provide backwards compat for async_timeout."""
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import contextlib
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
import async_timeout
|
||||
|
||||
from homeassistant.helpers.frame import (
|
||||
MissingIntegrationFrame,
|
||||
get_integration_frame,
|
||||
report_integration,
|
||||
)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def timeout(
|
||||
delay: float | None, loop: asyncio.AbstractEventLoop | None = None
|
||||
) -> async_timeout.Timeout:
|
||||
"""Backwards compatible timeout context manager that warns with loop usage."""
|
||||
if loop is None:
|
||||
loop = asyncio.get_running_loop()
|
||||
else:
|
||||
_report(
|
||||
"called async_timeout.timeout with loop keyword argument. The loop keyword argument is deprecated and calls will fail after Home Assistant 2022.2"
|
||||
)
|
||||
if delay is not None:
|
||||
deadline: float | None = loop.time() + delay
|
||||
else:
|
||||
deadline = None
|
||||
return async_timeout.Timeout(deadline, loop)
|
||||
|
||||
|
||||
def current_task(loop: asyncio.AbstractEventLoop) -> asyncio.Task[Any] | None:
|
||||
"""Backwards compatible current_task."""
|
||||
_report(
|
||||
"called async_timeout.current_task. The current_task call is deprecated and calls will fail after Home Assistant 2022.2; use asyncio.current_task instead"
|
||||
)
|
||||
return asyncio.current_task()
|
||||
|
||||
|
||||
def enable() -> None:
|
||||
"""Enable backwards compat transitions."""
|
||||
async_timeout.timeout = timeout
|
||||
async_timeout.current_task = current_task # type: ignore[attr-defined]
|
||||
|
||||
|
||||
def _report(what: str) -> None:
|
||||
"""Report incorrect usage.
|
||||
|
||||
Async friendly.
|
||||
"""
|
||||
integration_frame = None
|
||||
|
||||
with contextlib.suppress(MissingIntegrationFrame):
|
||||
integration_frame = get_integration_frame()
|
||||
|
||||
if not integration_frame:
|
||||
_LOGGER.warning(
|
||||
"Detected code that %s; Please report this issue", what, stack_info=True
|
||||
)
|
||||
return
|
||||
|
||||
report_integration(what, integration_frame)
|
Loading…
Add table
Add a link
Reference in a new issue