From: <Gre...@ao...> - 2008-06-27 17:10:59
|
opt...@li... wrote on 06/27/2008 12:04:31 PM: > On Fri, Jun 27, 2008 at 12:31, <Gre...@ao...> wrote: > > dgo...@gm... wrote on 06/27/2008 09:26:47 AM: > > > >> On Thu, Jun 26, 2008 at 20:17, <Gre...@ao...> wrote: > >> > So after reading through the docs and looking in the code a bit (gotta > > love > >> > open source), it occurred to me that it might be a "nice" feature to be > >> > able to provide multiple callbacks per option. > >> > >> This is easy to do from your own code. Just define a closure function: > >> > >> def multiple_callbacks(*callbacks): > >> """Returns a callback that calls multiple callbacks.""" > >> def call_multiple_callbacks(option, opt, value, parser): > >> for callback in callbacks: > >> callback(option, opt, value, parser) > >> return call_multiple_callbacks > >> > >> OPTIONS_LIST = [ > >> make_option('-c', '--chroot', default=None, > >> action='callback', > >> callback=multiple_callbacks(check_path_exists, check_path_isdir), > >> help="specifies the root of the chroot environment to work with"), > >> ... > > > > Nice. I like that.. and I will probably use that. Thank you. So, do this > > not seem like it would be a valuable function to have in optik? > > I have never felt the need for it, and have never heard of anyone > needing it before now. I've been using optparse for well over a year now and never even thought to start using callbacks until yesterday. Most of the code I've seen (admittedly probably a very small portion of the actual code people have written with optik/optparse) doesn't use them. So I guess it makes a difference on whether people were using the code that is in place already or re-creating the wheel unknowingly. But I concede the point especially based on the next statement. > In any case, I don't know if this is a useful forum for discussions of > Optik's development any more. It seems like Optik's author, Greg Ward, > has lost interest in it. It is only being maintained in Python's > standard library as optparse.py. Hrm.. well, such is life. At least it is being maintained. Thanks for your time an input. That function is very handy and will find its way into most of my code. -Greg |