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.3", error_if_core=False, ) if delay is not None: deadline: float | None = loop.time() + delay else: deadline = None return async_timeout.Timeout(deadline, loop)