On Wed, Mar 27, 2013 at 7:55 PM, Michael Herrmann
<michael.herrm...@getautoma.com> wrote:
> On Tuesday, March 26, 2013 5:41:42 PM UTC+1, Dave Angel wrote:
>> To go back to my sample wrapper functions, they'd look something like
>> (untested):
>>
>> def write(*args, focus=focused):
>>      focus.write(*args)
>
> I understood what you meant - I'm not so worried about the invocations, as of 
> course the parameter can be omitted if there's a default value/behaviour. 
> What I am worried about is the complexity this approach adds to several 
> functions. Yes, you could argue that one keyword argument really isn't that 
> much, but then you have to maintain and document it for all functions that 
> have the new keyword parameter. In other words, a single functionality that 
> is not needed 90% of the time increases the complexity of several, not really 
> related functions. I am very grateful for your suggestions! But I don't think 
> adding this keyword parameter is the way to go for us.
>

Not seeking to advocate this particular option, but it would be
possible to make a single wrapper for all your functions to handle the
focus= parameter:

def focusable(func):
        @functools.wraps(func)
        def wrapper(*args,focus=None):
                if focus: focus.activate()
                return func(*args)
        return wrapper

Then you just decorate all your functions with that:
def write(string):
    # do something with the active window

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to