def tuple_args(fn):
@wraps(fn)<EOL>def wrapped(*args, **kwargs):<EOL><INDENT>if len(args) == <NUM_LIT:1>:<EOL><INDENT>if isinstance(args[<NUM_LIT:0>], tuple):<EOL><INDENT>return fn(args[<NUM_LIT:0>], **kwargs)<EOL><DEDENT>elif isinstance(args[<NUM_LIT:0>], list):<EOL><INDENT>return fn(tuple(args[<NUM_LIT:0>]), **kwargs)<EOL><DEDENT><DEDENT>return fn(args, **kwargs)<EOL><DEDENT>return wrapped<EOL>
args 파싱 유틸 function
fun(p1, p2, ...pn, **kwargs) or fun([p1, p2, ..], **kwargs)
ex) 샘플::

    @tuple_arg
    def f(args, **kwargs):
        for d in args:
            print d
    f(1,2,3) =>  f([1,2,3])
:param function fn:
:return: