[pyar] Puedo evitar ejecución del bloque con un Context Manager?

QliX=D! [aka EHB] qlixed en gmail.com
Vie Jun 14 18:47:21 ART 2013


Workflow bssed programming? Hay un par de frameworks orientados a la tarea
de ar mm ar un flujo de trabajo que sea retomable en multiples puntos del
mismo. Busco los pinks cuando llego a casa y te lo paso.
El jun 14, 2013 5:40 PM, "fisa" <fisadev en gmail.com> escribió:

> Busqué medio rápido y no vi que se pueda, así que pregunto por si
> alguno se le ocurre alguna manera.
>
> La idea: un context manager para usar en scripts de deploy (ej:
> fabric), que evite que se ejecute código que ya fue ejecutado alguna
> otra vez en el servidor.
>
> Ejemplo:
>
> with avoid_twice('create_postgres_cluster'):
>     sudo('bla bla bla create cluster')
>     sudo('bla bla more things')
>
> El comportamiento que quiero de avoid_twice sería el siguiente:
> * en el ingreso: busco nombre de acción ('create_postgres_cluster') en
> un archivo, si no está, sigue todo normal. Si ya está, *evito* que se
> ejecute el contenido del bloque
> * en la salida: guardo nombre de la acción en el archivo (así evitando
> futuras repeticiones)
>
> Por qué? me ahorra repetir esta lógica en muchos lados:
>
> if was_executed('x'):
>    # code code code
>    save_executed('x')
>
> (no me gusta tener que siempre recordar meter el save, y tener que
> siempre poner 2 veces el nombre de la acción)
>
> Todo es una pavada, salvo por el "Si ya está, *evito* que se ejecute
> el contenido del bloque". Alguna idea de cómo lograr eso
> específicamente?
>
> Saludos!
>
> --
> fisa  -  Juan Pedro Fisanotti
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130614/0396356b/attachment.html>


More information about the pyar mailing list