code: def user_data_path(
      appname: str | None = None,
      appauthor: str | None | Literal[False] = None,
      version: str | None = None,
      roaming: bool = False,  # noqa: FBT001, FBT002
      ensure_exists: bool = False,  # noqa: FBT001, FBT002
  ) -> Path:
      """
      :param appname: See `appname <platformdirs.api.PlatformDirsABC.appname>`.
      :param appauthor: See `appauthor <platformdirs.api.PlatformDirsABC.appauthor>`.
      :param version: See `version <platformdirs.api.PlatformDirsABC.version>`.
      :param roaming: See `roaming <platformdirs.api.PlatformDirsABC.roaming>`.
      :param ensure_exists: See `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
      :returns: data path tied to the user
      """
      return PlatformDirs(
          appname=appname,
          appauthor=appauthor,
          version=version,
          roaming=roaming,
          ensure_exists=ensure_exists,
      ).user_data_path
  
imports: from __future__ import annotations
  import os
  import sys
  from typing import TYPE_CHECKING
  from .api import PlatformDirsABC
  from .version import __version__
  from .version import __version_tuple__
label_desc: Use image node_id 18 for calling a global function with example usage: user_data_path(appname, appauthor, version, roaming, ensure_exists) and returns: PlatformDirs