class_docstr: `MSDN on where to store app data files
  <http://support.microsoft.com/default.aspx?scid=kb;en-us;310294#XSLTH3194121123120121120120>`_.
  Makes use of the
  `appname <platformdirs.api.PlatformDirsABC.appname>`,
  `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`,
  `version <platformdirs.api.PlatformDirsABC.version>`,
  `roaming <platformdirs.api.PlatformDirsABC.roaming>`,
  `opinion <platformdirs.api.PlatformDirsABC.opinion>`.
docstr: :return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents``
docstr_tok: [":","return",":","documents","directory","tied","to","the","user","e.g",".","``","%","USERPROFILE","%","\\Documents","``"]
code: def user_documents_dir(self) -> str:
      """
      :return: documents directory tied to the user e.g. ``%USERPROFILE%\\Documents``
      """
      return os.path.normpath(get_win_folder("CSIDL_PERSONAL"))
  
imports: from __future__ import annotations
  import ctypes
  import os
  import sys
  from functools import lru_cache
  from typing import Callable
  from .api import PlatformDirsABC
label_desc: Use image node_id 9 for calling the Windows obj's underlying member method code with example usage: obj.user_documents_dir() and returns: os