Асинхронный вариант (asincio) пустого менеджера контекста (nullcontext) в Python

Если вы используете менеджер контекста в операторе with и вам нужно сделать его использование опциональным, то можно применить nullcontext как вариант “не использовать менеджер контекста””.

Например в функцию передается s3 boto client но функция может создать и свой, если он не передан:

Но, например, в aiobotocore вам нужен асинхронный менеджер контекста:

В Python нет асинхронного варианта для nullcontext.

Как решение вы можете использовать AsyncExitStack: