Condicional con declaración en Python

¿Hay alguna manera de comenzar un bloque de código con una instrucción with, pero condicionalmente?

Algo como:

if needs_with():
    with get_stuff() as gs:

# do nearly the same large block of stuff,
# involving gs or not, depending on needs_with()

Para aclarar, un escenario tendría un bloque encerrado en la declaración with, mientras que otra posibilidad sería el mismo bloque, pero no encerrado (es decir, como si no estuviera sangrado)

Los experimentos iniciales, por supuesto, dan errores de sangría.