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

Lucio Torre lucio.torre en gmail.com
Sab Jun 15 13:23:54 ART 2013


Esto a lo mejor tendria mas sentido asi:

if not task_done(task_name):
     with task_monitor(task_name):
          do_task()

Y la razon que propongo esto es porque nadie miente sobre lo que hace. Task
done te dice si un task se hizo y task monitor se fija si un task se hace.
(seguro hay un nombre mejor).
En el otro ejemplo algo dice ser un avoid_twice, pero si vos no estas
checkeando por el valor de done no cumple con su funcion.

El problema seria la duplicacion de task_name.

Lucio.


2013/6/15 Hystrix <ego en hystrix.com.ar>

> 2013/6/14 fisa <fisadev en gmail.com>
> >
> > 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)
>
>
> Interesante problema, lo que se me ocurrio es que el context manager
> devuelva True si ya se ejecuto la tarea y con eso agregas un if antes
> de ejecutar las instrucciones que no se deben repetir. Te agrega un if
> pero te evita tener que crear funciones para cada bloque de cosas que
> no queres ejecutar dos veces.
>
> El codigo aca https://gist.github.com/fcasco/5788558 porque no pude
> hacer que Gmail respete la indentacion de las lineas
> _______________________________________________
> 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/20130615/cdb1bba5/attachment.html>


More information about the pyar mailing list