def as_session(name_or_func):  
if callable(name_or_func):  <EOL><INDENT>func = name_or_func<EOL>name = func.__name__<EOL>name = "<STR_LIT>".join([('<STR_LIT:U+0020>' + x) if x.isupper() else x for x in name])<EOL>name = name.replace('<STR_LIT:_>', '<STR_LIT:U+0020>')<EOL>return as_session(name)(func)  <EOL><DEDENT>else:<EOL><INDENT>name = name_or_func<EOL><DEDENT>def get_func(func):<EOL><INDENT>@wraps(func)<EOL>def wrapper(*args, **kwargs):<EOL><INDENT>start()<EOL>title(name)<EOL>result = func(*args, **kwargs)<EOL>end()<EOL>return result<EOL><DEDENT>return wrapper<EOL><DEDENT>return get_func<EOL>
print start/title/end info before and after the function call

    Args:
        title: title will show after the start, if has any