Есть ли способ начать блок кода с оператором with, но условно?
Что-то вроде:
if needs_with():
with get_stuff() as gs:
# do nearly the same large block of stuff,
# involving gs or not, depending on needs_with()
Чтобы уточнить, один сценарий имел бы блок, заключенный в оболочку в операторе с, тогда как другая возможность была бы тем же самым блоком, но не заключена в оболочку (то есть, как если бы он не был отступом)
Исходные эксперименты, конечно, дают ошибки отступов.