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>`.
code: def _append_parts(
      self, path: str, *, opinion_value: str | None = None
  ) -> str:
      params = []
      if self.appname:
          if self.appauthor is not False:
              author = self.appauthor or self.appname
              params.append(author)
          params.append(self.appname)
          if opinion_value is not None and self.opinion:
              params.append(opinion_value)
          if self.version:
              params.append(self.version)
      return os.path.join(path, *params)
  
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 2 for calling the Windows obj's underlying member method code with example usage: obj._append_parts(path) and returns: os