cancel-scope-no-checkpoint (ASYNC100)
派生自 flake8-async linter。
作用
检查不包含检查点的超时上下文管理器。
出于此检查的目的,yield
被视为检查点,因为检查点可能发生在调用者中,我们会屈服于调用者。
为什么这不好?
某些异步上下文管理器,例如 asyncio.timeout
和 trio.move_on_after
,除非它们包含检查点,否则无效。 在没有 await
、async with
或 async for
语句的情况下使用此类上下文管理器可能是一个错误。
示例
建议改为