def cache(*args, **kwargs):
<EOL>if len(args) == <NUM_LIT:1> and len(kwargs) == <NUM_LIT:0> and(callable(args[<NUM_LIT:0>]) orisinstance(args[<NUM_LIT:0>], tuple(SUPPORTED_DECORATOR.keys()))):<EOL><INDENT>return _cache_w_args(args[<NUM_LIT:0>])<EOL><DEDENT>return lambda f: _cache_w_args(f, *args, **kwargs)<EOL>
The @cache decorator

    Compatility with using ``@cache()`` and ``@cache`` is managed in
    the current function.