Designing a cancellable function
Gabriel Genellina
gagsl-py at yahoo.com.ar
Fri Dec 15 22:22:58 EST 2006
More information about the Python-list mailing list
Fri Dec 15 22:22:58 EST 2006
- Previous message (by thread): concatenating strings
- Next message (by thread): Designing a cancellable function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
At Friday 15/12/2006 22:20, Leo Breebaart wrote: >I have written a function foo() that iterates over and processes >a large number of files. The function should be available to the >user as library function, via a command-line interface, and >through a GUI. > >So, I added a 'config' object as a parameter to foo() that can be >used by the caller to explicitly pass in user-defined settings. >Because the processing foo() does can take such a long time, the >next thing I did was add an 'update_function' callback parameter >that foo() will call regularly, so that the GUI can update a >progress bar, and the command-line version can print dots, etc. > >I now would also like to add the possibility to allow the user to >*cancel* the execution of foo() during the processing, and I am >wondering what the best / most Pythonic way to design this is. I can't say if this is the "best/more Pythonic way", but a simple way would be to use the return value from your callback. Consider it an "abort" function: if it returns True, cancel execution; as long as it returns False, keep going. (The somewhat "reversed" meaning is useful in case the user doesn't provide a callback at all, or it's an empty one, or it contains just a print ".", statement, all of these returning False; so, to actually abort the process it must have an explicit "return True" statement). -- Gabriel Genellina Softlab SRL __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
- Previous message (by thread): concatenating strings
- Next message (by thread): Designing a cancellable function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list