It can be helpful to be able to handle functions/methods that have not been 
implemented.  This is often done by having them print a string (such as 
"Not Implemented") and returning.  This is a bit clumsy and one needs to 
edit it out when the function is ready to test.

 As an alternative, I sometimes use a decorator.  The decorator depends on 
having the last line of the function body be "pass".

If the last line is "pass", the function body is not executed even if the 
function includes code ahead of the "pass" line.  Instead, a "not 
implemented" message is printed.  Once that last line has been removed, the 
function body will get executed as if the decorator were not present.

import inspect
def notImplemented(f):
    """Decorator to announce when the decorated function
    has not been implemented.  
    
    The last line of the function must be "pass" for this
    to work.  If the last line is "pass", the function will
    not be invoked even if there is other code before
    the "pass" line.
    """
    _name = f.__name__
    def new_f(*args):
        _lines = inspect.getsourcelines(f)[0]
        if _lines[-1].strip() == 'pass' :
            print('%s() not implemented' % _name)
        else:
            return f(*args)
    return new_f

**keywords could be added to the signatures, but so far I haven't needed it.

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/a01bf31b-dbd0-4ea1-a8e1-090b8db49bden%40googlegroups.com.

Reply via email to