summaryrefslogtreecommitdiffstats
path: root/contrib/python/platformdirs
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2026-04-25 09:59:06 +0300
committerrobot-piglet <[email protected]>2026-04-25 10:48:12 +0300
commit2d1f62f74cd0c77eb52992b92e18aa3cd85579cf (patch)
tree80779077077b0549f9649fd2f187117eebf91100 /contrib/python/platformdirs
parente1a7571be0fe6bcf30b7aad897281b174448b30e (diff)
Intermediate changes
commit_hash:e3b2da3e3b235008d754774ecba3c22b082c285d
Diffstat (limited to 'contrib/python/platformdirs')
-rw-r--r--contrib/python/platformdirs/.dist-info/METADATA2
-rw-r--r--contrib/python/platformdirs/platformdirs/_xdg.py6
-rw-r--r--contrib/python/platformdirs/platformdirs/api.py19
-rw-r--r--contrib/python/platformdirs/platformdirs/macos.py24
-rw-r--r--contrib/python/platformdirs/platformdirs/unix.py6
-rw-r--r--contrib/python/platformdirs/platformdirs/version.py26
-rw-r--r--contrib/python/platformdirs/ya.make2
7 files changed, 51 insertions, 34 deletions
diff --git a/contrib/python/platformdirs/.dist-info/METADATA b/contrib/python/platformdirs/.dist-info/METADATA
index c2b3e9e8f15..f9ac753abd2 100644
--- a/contrib/python/platformdirs/.dist-info/METADATA
+++ b/contrib/python/platformdirs/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: platformdirs
-Version: 4.9.4
+Version: 4.9.6
Summary: A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.
Project-URL: Changelog, https://platformdirs.readthedocs.io/en/latest/changelog.html
Project-URL: Documentation, https://platformdirs.readthedocs.io
diff --git a/contrib/python/platformdirs/platformdirs/_xdg.py b/contrib/python/platformdirs/platformdirs/_xdg.py
index c4aadd6d031..5ffbf93eb57 100644
--- a/contrib/python/platformdirs/platformdirs/_xdg.py
+++ b/contrib/python/platformdirs/platformdirs/_xdg.py
@@ -21,7 +21,7 @@ class XDGMixin(PlatformDirsABC):
def _site_data_dirs(self) -> list[str]:
if xdg_dirs := os.environ.get("XDG_DATA_DIRS", "").strip():
return [self._append_app_name_and_version(p) for p in xdg_dirs.split(os.pathsep) if p.strip()]
- return super()._site_data_dirs # type: ignore[misc]
+ return super()._site_data_dirs
@property
def site_data_dir(self) -> str:
@@ -40,7 +40,7 @@ class XDGMixin(PlatformDirsABC):
def _site_config_dirs(self) -> list[str]:
if xdg_dirs := os.environ.get("XDG_CONFIG_DIRS", "").strip():
return [self._append_app_name_and_version(p) for p in xdg_dirs.split(os.pathsep) if p.strip()]
- return super()._site_config_dirs # type: ignore[misc]
+ return super()._site_config_dirs
@property
def site_config_dir(self) -> str:
@@ -129,7 +129,7 @@ class XDGMixin(PlatformDirsABC):
def _site_applications_dirs(self) -> list[str]:
if xdg_dirs := os.environ.get("XDG_DATA_DIRS", "").strip():
return [os.path.join(p, "applications") for p in xdg_dirs.split(os.pathsep) if p.strip()] # noqa: PTH118
- return super()._site_applications_dirs # type: ignore[misc]
+ return super()._site_applications_dirs
@property
def site_applications_dir(self) -> str:
diff --git a/contrib/python/platformdirs/platformdirs/api.py b/contrib/python/platformdirs/platformdirs/api.py
index 1ee29adb5be..1e3b9a97c65 100644
--- a/contrib/python/platformdirs/platformdirs/api.py
+++ b/contrib/python/platformdirs/platformdirs/api.py
@@ -50,6 +50,13 @@ class PlatformDirsABC(ABC): # noqa: PLR0904
Typically, it is the owning company name. Defaults to `appname`. You may pass ``False`` to disable it.
+ .. note::
+
+ On Windows, the directory structure is ``<base>/<appauthor>/<appname>``. When ``appauthor`` is ``None`` (the
+ default), it falls back to ``appname``, resulting in ``<base>/<appname>/<appname>`` (e.g.
+ ``AppData/Local/myapp/myapp``). Pass ``appauthor=False`` to omit the author directory entirely and get
+ ``<base>/<appname>``.
+
"""
self.version = version
"""An optional version path element to append to the path.
@@ -124,6 +131,10 @@ class PlatformDirsABC(ABC): # noqa: PLR0904
""":returns: data directory shared by users"""
@property
+ def _site_data_dirs(self) -> list[str]:
+ raise NotImplementedError
+
+ @property
@abstractmethod
def user_config_dir(self) -> str:
""":returns: config directory tied to the user"""
@@ -134,6 +145,10 @@ class PlatformDirsABC(ABC): # noqa: PLR0904
""":returns: config directory shared by users"""
@property
+ def _site_config_dirs(self) -> list[str]:
+ raise NotImplementedError
+
+ @property
@abstractmethod
def user_cache_dir(self) -> str:
""":returns: cache directory tied to the user"""
@@ -214,6 +229,10 @@ class PlatformDirsABC(ABC): # noqa: PLR0904
""":returns: applications directory shared by users"""
@property
+ def _site_applications_dirs(self) -> list[str]:
+ raise NotImplementedError
+
+ @property
@abstractmethod
def user_runtime_dir(self) -> str:
""":returns: runtime directory tied to the user"""
diff --git a/contrib/python/platformdirs/platformdirs/macos.py b/contrib/python/platformdirs/platformdirs/macos.py
index 249324672b0..26447e396e3 100644
--- a/contrib/python/platformdirs/platformdirs/macos.py
+++ b/contrib/python/platformdirs/platformdirs/macos.py
@@ -25,13 +25,10 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904
"""
- @property
- def user_data_dir(self) -> str:
- """:returns: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``"""
+ def _base_user_app_support_dir(self) -> str:
return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support")) # noqa: PTH111
- @property
- def _site_data_dirs(self) -> list[str]:
+ def _base_site_dirs(self) -> list[str]:
is_homebrew = "/opt/python" in sys.prefix
homebrew_prefix = sys.prefix.split("/opt/python")[0] if is_homebrew else ""
path_list = [self._append_app_name_and_version(f"{homebrew_prefix}/share")] if is_homebrew else []
@@ -39,6 +36,15 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904
return path_list
@property
+ def user_data_dir(self) -> str:
+ """:returns: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``"""
+ return self._base_user_app_support_dir()
+
+ @property
+ def _site_data_dirs(self) -> list[str]:
+ return self._base_site_dirs()
+
+ @property
def site_data_path(self) -> Path:
""":returns: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``"""
return self._first_item_as_path_if_multipath(self.site_data_dir)
@@ -46,11 +52,11 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904
@property
def user_config_dir(self) -> str:
""":returns: config directory tied to the user, same as `user_data_dir`"""
- return self.user_data_dir
+ return self._base_user_app_support_dir()
@property
def _site_config_dirs(self) -> list[str]:
- return self._site_data_dirs
+ return self._base_site_dirs()
@property
def user_cache_dir(self) -> str:
@@ -76,12 +82,12 @@ class _MacOSDefaults(PlatformDirsABC): # noqa: PLR0904
@property
def user_state_dir(self) -> str:
""":returns: state directory tied to the user, same as `user_data_dir`"""
- return self.user_data_dir
+ return self._base_user_app_support_dir()
@property
def site_state_dir(self) -> str:
""":returns: state directory shared by users, same as `site_data_dir`"""
- return self.site_data_dir
+ return self._base_site_dirs()[0]
@property
def user_log_dir(self) -> str:
diff --git a/contrib/python/platformdirs/platformdirs/unix.py b/contrib/python/platformdirs/platformdirs/unix.py
index 0638700c192..8ec5a6bc718 100644
--- a/contrib/python/platformdirs/platformdirs/unix.py
+++ b/contrib/python/platformdirs/platformdirs/unix.py
@@ -199,12 +199,14 @@ class _UnixDefaults(PlatformDirsABC): # noqa: PLR0904
def iter_config_dirs(self) -> Iterator[str]:
""":yield: all user and site configuration directories."""
- yield self.user_config_dir
+ if not self._use_site:
+ yield self.user_config_dir
yield from self._site_config_dirs
def iter_data_dirs(self) -> Iterator[str]:
""":yield: all user and site data directories."""
- yield self.user_data_dir
+ if not self._use_site:
+ yield self.user_data_dir
yield from self._site_data_dirs
diff --git a/contrib/python/platformdirs/platformdirs/version.py b/contrib/python/platformdirs/platformdirs/version.py
index 190c600dc60..99cae7946ef 100644
--- a/contrib/python/platformdirs/platformdirs/version.py
+++ b/contrib/python/platformdirs/platformdirs/version.py
@@ -1,5 +1,6 @@
-# file generated by setuptools-scm
+# file generated by vcs-versioning
# don't change, don't track in version control
+from __future__ import annotations
__all__ = [
"__version__",
@@ -10,25 +11,14 @@ __all__ = [
"commit_id",
]
-TYPE_CHECKING = False
-if TYPE_CHECKING:
- from typing import Tuple
- from typing import Union
-
- VERSION_TUPLE = Tuple[Union[int, str], ...]
- COMMIT_ID = Union[str, None]
-else:
- VERSION_TUPLE = object
- COMMIT_ID = object
-
version: str
__version__: str
-__version_tuple__: VERSION_TUPLE
-version_tuple: VERSION_TUPLE
-commit_id: COMMIT_ID
-__commit_id__: COMMIT_ID
+__version_tuple__: tuple[int | str, ...]
+version_tuple: tuple[int | str, ...]
+commit_id: str | None
+__commit_id__: str | None
-__version__ = version = '4.9.4'
-__version_tuple__ = version_tuple = (4, 9, 4)
+__version__ = version = '4.9.6'
+__version_tuple__ = version_tuple = (4, 9, 6)
__commit_id__ = commit_id = None
diff --git a/contrib/python/platformdirs/ya.make b/contrib/python/platformdirs/ya.make
index 14da5693576..9155aa43b0a 100644
--- a/contrib/python/platformdirs/ya.make
+++ b/contrib/python/platformdirs/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(4.9.4)
+VERSION(4.9.6)
LICENSE(MIT)