[pyar] Puedo evitar ejecución del bloque con un Context Manager?
fisa
fisadev en gmail.com
Vie Jun 14 17:40:15 ART 2013
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
More information about the pyar
mailing list