def user_cache_dir(appname):<EOL>
if WINDOWS:<EOL><INDENT>path = os.path.normpath(_get_win_folder("<STR_LIT>"))<EOL>if PY2 and isinstance(path, text_type):<EOL><INDENT>path = _win_path_to_bytes(path)<EOL><DEDENT>path = os.path.join(path, appname, "<STR_LIT>")<EOL><DEDENT>elif sys.platform == "<STR_LIT>":<EOL><INDENT>path = expanduser("<STR_LIT>")<EOL>path = os.path.join(path, appname)<EOL><DEDENT>else:<EOL><INDENT>path = os.getenv("<STR_LIT>", expanduser("<STR_LIT>"))<EOL>path = os.path.join(path, appname)<EOL><DEDENT>return path<EOL>
r"""
    Return full path to the user-specific cache dir for this application.

        "appname" is the name of application.

    Typical user cache directories are:
        macOS:      ~/Library/Caches/<AppName>
        Unix:       ~/.cache/<AppName> (XDG default)
        Windows:    C:\Users\<username>\AppData\Local\<AppName>\Cache

    On Windows the only suggestion in the MSDN docs is that local settings go
    in the `CSIDL_LOCAL_APPDATA` directory. This is identical to the
    non-roaming app data dir (the default returned by `user_data_dir`). Apps
    typically put cache data somewhere *under* the given dir here. Some
    examples:
        ...\Mozilla\Firefox\Profiles\<ProfileName>\Cache
        ...\Acme\SuperApp\Cache\1.0

    OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value.