¿Cómo funciona la declaración 'con' en Flask (Jinja2)?

En Python puedes usar elwith declaración como esta (fuente):

class controlled_execution:
    def __enter__(self):
        # set things up
        return thing
    def __exit__(self, type, value, traceback):
        # tear things down

with controlled_execution() as thing:
     # some code

En Flask / Jinja2, el procedimiento estándar para usar mensajes flash es el siguiente (fuente):

{% with messages = get_flashed_messages() %}
  {% if messages %}
    {% for message in messages %}
      <!-- do stuff with `message` -->
    {% endfor %}        
  {% endif %}
{% endwith %}

Me gustaria saber como{% with messages = get_flashed_messages() %} funciona en términos de sintaxis.

No pude recrearlo en Python puro:

with messages = get_flashed_messages(): pass planteaSyntaxErrorwith get_flashed_messages() as messages: pass planteaAttributeError: __exit__

(He importadoget_flashed_messages deflask en ambos casos).

Respuestas a la pregunta(2)

Su respuesta a la pregunta