environment/lib/python2.7/site-packages/IPython/core/magic.py
def _method_magic_marker(magic_kind):
    """Decorator factory for methods in Magics subclasses.
    """

    validate_type(magic_kind)

    # This is a closure to capture the magic_kind.  We could also use a class,
    # but it's overkill for just that one bit of state.
    def magic_deco(arg):
        call = lambda f, *a, **k: f(*a, **k)

        if callable(arg):
            # "Naked" decorator call (just @foo, no args)
            func = arg
            name = func.func_name
            retval = decorator(call, func)
            record_magic(magics, magic_kind, name, name)
        elif isinstance(arg, basestring):
            # Decorator called with arguments (@foo('bar'))
            name = arg
            def mark(func, *a, **kw):
                record_magic(magics, magic_kind, name, func.func_name)
                return decorator(call, func)
            retval = mark
        else:
            raise TypeError("Decorator can only be called with "
                            "string or function")
        return retval

    # Ensure the resulting decorator has a usable docstring
    magic_deco.__doc__ = _docstring_template.format('method', magic_kind)
    return magic_deco
def _method_magic_marker(magic_kind):
    validate_type(magic_kind)

    # This is a closure to capture the magic_kind.  We could also use a class,
    # but it's overkill for just that one bit of state.
    def magic_deco(arg):
        call = lambda f, *a, **k: f(*a, **k)

        if callable(arg):
            # "Naked" decorator call (just @foo, no args)
            func = arg
            name = func.func_name
            retval = decorator(call, func)
            record_magic(magics, magic_kind, name, name)
        elif isinstance(arg, basestring):
            # Decorator called with arguments (@foo('bar'))
            name = arg
            def mark(func, *a, **kw):
                record_magic(magics, magic_kind, name, func.func_name)
                return decorator(call, func)
            retval = mark
        else:
            raise TypeError("Decorator can only be called with "
                            "string or function")
        return retval

    # Ensure the resulting decorator has a usable docstring
    magic_deco.__doc__ = _docstring_template.format('method', magic_kind)
    return magic_deco
def _method_magic_marker ( magic_kind ) : validate_type ( magic_kind ) # This is a closure to capture the magic_kind.  We could also use a class, # but it's overkill for just that one bit of state. def magic_deco ( arg ) : call = lambda f , * a , * * k : f ( * a , * * k ) if callable ( arg ) : # "Naked" decorator call (just @foo, no args) func = arg name = func . func_name retval = decorator ( call , func ) record_magic ( magics , magic_kind , name , name ) elif isinstance ( arg , basestring ) : # Decorator called with arguments (@foo('bar')) name = arg def mark ( func , * a , * * kw ) : record_magic ( magics , magic_kind , name , func . func_name ) return decorator ( call , func ) retval = mark else : raise TypeError ( "Decorator can only be called with " "string or function" ) return retval # Ensure the resulting decorator has a usable docstring magic_deco . __doc__ = _docstring_template . format ( 'method' , magic_kind ) return magic_deco
Decorator factory for methods in Magics subclasses.
Decorator factory for methods in Magics subclasses .