class_docstr: Abstract base class for platform directories.
docstr: Create a new platform directory.
  
  :param appname: See `appname`.
  :param appauthor: See `appauthor`.
  :param version: See `version`.
  :param roaming: See `roaming`.
  :param multipath: See `multipath`.
  :param opinion: See `opinion`.
  :param ensure_exists: See `ensure_exists`.
docstr_tok: ["Create","a","new","platform","directory",".",":","param","appname",":","See","`","appname","`",".",":","param","appauthor",":","See","`","appauthor","`",".",":","param","version",":","See","`","version","`",".",":","param","roaming",":","See","`","roaming","`",".",":","param","multipath",":","See","`","multipath","`",".",":","param","opinion",":","See","`","opinion","`",".",":","param","ensure_exists",":","See","`","ensure_exists","`","."]
code: def __init__(  # noqa: PLR0913
      self,
      appname: str | None = None,
      appauthor: str | None | Literal[False] = None,
      version: str | None = None,
      roaming: bool = False,  # noqa: FBT001, FBT002
      multipath: bool = False,  # noqa: FBT001, FBT002
      opinion: bool = True,  # noqa: FBT001, FBT002
      ensure_exists: bool = False,  # noqa: FBT001, FBT002
  ) -> None:
      """
      Create a new platform directory.
  
      :param appname: See `appname`.
      :param appauthor: See `appauthor`.
      :param version: See `version`.
      :param roaming: See `roaming`.
      :param multipath: See `multipath`.
      :param opinion: See `opinion`.
      :param ensure_exists: See `ensure_exists`.
      """
      self.appname = appname  #: The name of application.
      self.appauthor = appauthor
      """
          The name of the app author or distributing body for this application. Typically, it is the owning company name.
          Defaults to `appname`. You may pass ``False`` to disable it.
          """
      self.version = version
      """
          An optional version path element to append to the path. You might want to use this if you want multiple versions
          of your app to be able to run independently. If used, this would typically be ``<major>.<minor>``.
          """
      self.roaming = roaming
      """
          Whether to use the roaming appdata directory on Windows. That means that for users on a Windows network setup
          for roaming profiles, this user data will be synced on login (see
          `here <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx>`_).
          """
      self.multipath = multipath
      """
          An optional parameter which indicates that the entire list of data dirs should be returned.
          By default, the first item would only be returned.
          """
      self.opinion = (
          opinion  #: A flag to indicating to use opinionated values.
      )
      self.ensure_exists = ensure_exists
      """
          Optionally create the directory (and any missing parents) upon access if it does not exist.
          By default, no directories are created.
          """
  
imports: from __future__ import annotations
  import os
  from abc import ABC, abstractmethod
  from pathlib import Path
  from typing import TYPE_CHECKING
label_desc: Use image node_id 1 to create a new PlatformDirsABC object from inherited base classes: ABC with example: obj = PlatformDirsABC(appname, appauthor, version, roaming, multipath, opinion, ensure_exists)