Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK!K _ _ macos.pynu[from __future__ import annotations import os from .api import PlatformDirsABC class MacOS(PlatformDirsABC): """ Platform directories for the macOS operating system. Follows the guidance from `Apple documentation `_. Makes use of the `appname ` and `version `. """ @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Application Support/")) @property def site_data_dir(self) -> str: """:return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``""" return self._append_app_name_and_version("/Library/Application Support") @property def user_config_dir(self) -> str: """:return: config directory tied to the user, e.g. ``~/Library/Preferences/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Preferences/")) @property def site_config_dir(self) -> str: """:return: config directory shared by the users, e.g. ``/Library/Preferences/$appname``""" return self._append_app_name_and_version("/Library/Preferences") @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches")) @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Logs")) @property def user_documents_dir(self) -> str: """:return: documents directory tied to the user, e.g. ``~/Documents``""" return os.path.expanduser("~/Documents") @property def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``""" return self._append_app_name_and_version(os.path.expanduser("~/Library/Caches/TemporaryItems")) __all__ = [ "MacOS", ] PK!unix.pynu[from __future__ import annotations import os import sys from configparser import ConfigParser from pathlib import Path from .api import PlatformDirsABC if sys.platform.startswith("linux"): # pragma: no branch # no op check, only to please the type checker from os import getuid else: def getuid() -> int: raise RuntimeError("should only be used on Linux") class Unix(PlatformDirsABC): """ On Unix/Linux, we follow the `XDG Basedir Spec `_. The spec allows overriding directories with environment variables. The examples show are the default values, alongside the name of the environment variable that overrides them. Makes use of the `appname `, `version `, `multipath `, `opinion `. """ @property def user_data_dir(self) -> str: """ :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version`` """ path = os.environ.get("XDG_DATA_HOME", "") if not path.strip(): path = os.path.expanduser("~/.local/share") return self._append_app_name_and_version(path) @property def site_data_dir(self) -> str: """ :return: data directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` """ # XDG default for $XDG_DATA_DIRS; only first, if multipath is False path = os.environ.get("XDG_DATA_DIRS", "") if not path.strip(): path = f"/usr/local/share{os.pathsep}/usr/share" return self._with_multi_path(path) def _with_multi_path(self, path: str) -> str: path_list = path.split(os.pathsep) if not self.multipath: path_list = path_list[0:1] path_list = [self._append_app_name_and_version(os.path.expanduser(p)) for p in path_list] return os.pathsep.join(path_list) @property def user_config_dir(self) -> str: """ :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or ``$XDG_CONFIG_HOME/$appname/$version`` """ path = os.environ.get("XDG_CONFIG_HOME", "") if not path.strip(): path = os.path.expanduser("~/.config") return self._append_app_name_and_version(path) @property def site_config_dir(self) -> str: """ :return: config directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/etc/xdg/$appname/$version`` """ # XDG default for $XDG_CONFIG_DIRS only first, if multipath is False path = os.environ.get("XDG_CONFIG_DIRS", "") if not path.strip(): path = "/etc/xdg" return self._with_multi_path(path) @property def user_cache_dir(self) -> str: """ :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``~/$XDG_CACHE_HOME/$appname/$version`` """ path = os.environ.get("XDG_CACHE_HOME", "") if not path.strip(): path = os.path.expanduser("~/.cache") return self._append_app_name_and_version(path) @property def user_state_dir(self) -> str: """ :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or ``$XDG_STATE_HOME/$appname/$version`` """ path = os.environ.get("XDG_STATE_HOME", "") if not path.strip(): path = os.path.expanduser("~/.local/state") return self._append_app_name_and_version(path) @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``log`` in it """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "log") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user, e.g. ``~/Documents`` """ documents_dir = _get_user_dirs_folder("XDG_DOCUMENTS_DIR") if documents_dir is None: documents_dir = os.environ.get("XDG_DOCUMENTS_DIR", "").strip() if not documents_dir: documents_dir = os.path.expanduser("~/Documents") return documents_dir @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version`` """ path = os.environ.get("XDG_RUNTIME_DIR", "") if not path.strip(): path = f"/run/user/{getuid()}" return self._append_app_name_and_version(path) @property def site_data_path(self) -> Path: """:return: data path shared by users. Only return first item, even if ``multipath`` is set to ``True``""" return self._first_item_as_path_if_multipath(self.site_data_dir) @property def site_config_path(self) -> Path: """:return: config path shared by the users. Only return first item, even if ``multipath`` is set to ``True``""" return self._first_item_as_path_if_multipath(self.site_config_dir) def _first_item_as_path_if_multipath(self, directory: str) -> Path: if self.multipath: # If multipath is True, the first path is returned. directory = directory.split(os.pathsep)[0] return Path(directory) def _get_user_dirs_folder(key: str) -> str | None: """Return directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/""" user_dirs_config_path = os.path.join(Unix().user_config_dir, "user-dirs.dirs") if os.path.exists(user_dirs_config_path): parser = ConfigParser() with open(user_dirs_config_path) as stream: # Add fake section header, so ConfigParser doesn't complain parser.read_string(f"[top]\n{stream.read()}") if key not in parser["top"]: return None path = parser["top"][key].strip('"') # Handle relative home paths path = path.replace("$HOME", os.path.expanduser("~")) return path return None __all__ = [ "Unix", ] PK!T33__pycache__/api.cpython-312.pycnu[ Cg=$vdZddlmZddlZddlmZmZddlmZddl m Z e r ddl m Z ddl m Z Gd d eZy) z Base API.) annotationsN)ABCabstractmethod)Path) TYPE_CHECKING)Iterator)Literalc~eZdZdZ d/ d0dZd1dZd2dZd3dZee d4dZ ee d4dZ ee d4d Z ee d4d Z ee d4d Zee d4d Zee d4d Zee d4dZee d4dZee d4dZee d4dZee d4dZee d4dZee d4dZee d4dZee d4dZed5dZed5dZed5dZed5dZed5dZed5dZed5dZ ed5dZ!ed5dZ"ed5d Z#ed5d!Z$ed5d"Z%ed5d#Z&ed5d$Z'ed5d%Z(ed5d&Z)d6d'Z*d6d(Z+d6d)Z,d6d*Z-d7d+Z.d7d,Z/d7d-Z0d7d.Z1y)8PlatformDirsABCz-Abstract base class for platform directories.Ncn||_||_ ||_ ||_ ||_ ||_||_y)aY 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`. N)appname appauthorversionroaming multipathopinion ensure_exists)selfr rrrrrrs ?/opt/hc_python/lib/python3.12/site-packages/platformdirs/api.py__init__zPlatformDirsABC.__init__sW, "     #  * c&t|dd}|jrB|j|j|jr|j|jt j j |dg|}|j||S)Nr)listr appendrospathjoin_optionally_create_directory)rbaseparamsrs r_append_app_name_and_versionz,PlatformDirsABC._append_app_name_and_versionQsmd12h << MM$,, '|| dll+ww||DG-f- ))$/ rcV|jrt|jddyy)NT)parentsexist_ok)rrmkdirrrs rrz,PlatformDirsABC._optionally_create_directory[s'    J  TD  9 rct|jr"|jtjd}t |S)Nr)rsplitrpathsepr)r directorys r _first_item_as_path_if_multipathz0PlatformDirsABC._first_item_as_path_if_multipath_s* >>! 3A6IIrcy)z(:return: data directory tied to the userNrs r user_data_dirzPlatformDirsABC.user_data_dirercy)z':return: data directory shared by usersNr.r/s r site_data_dirzPlatformDirsABC.site_data_dirjr1rcy)z*:return: config directory tied to the userNr.r/s ruser_config_dirzPlatformDirsABC.user_config_diror1rcy)z-:return: config directory shared by the usersNr.r/s rsite_config_dirzPlatformDirsABC.site_config_dirtr1rcy)z):return: cache directory tied to the userNr.r/s ruser_cache_dirzPlatformDirsABC.user_cache_diryr1rcy)z(:return: cache directory shared by usersNr.r/s rsite_cache_dirzPlatformDirsABC.site_cache_dir~r1rcy)z):return: state directory tied to the userNr.r/s ruser_state_dirzPlatformDirsABC.user_state_dirr1rcy)z':return: log directory tied to the userNr.r/s r user_log_dirzPlatformDirsABC.user_log_dirr1rcy)z-:return: documents directory tied to the userNr.r/s ruser_documents_dirz"PlatformDirsABC.user_documents_dirr1rcy)z-:return: downloads directory tied to the userNr.r/s ruser_downloads_dirz"PlatformDirsABC.user_downloads_dirr1rcy)z,:return: pictures directory tied to the userNr.r/s ruser_pictures_dirz!PlatformDirsABC.user_pictures_dirr1rcy)z*:return: videos directory tied to the userNr.r/s ruser_videos_dirzPlatformDirsABC.user_videos_dirr1rcy)z):return: music directory tied to the userNr.r/s ruser_music_dirzPlatformDirsABC.user_music_dirr1rcy)z+:return: desktop directory tied to the userNr.r/s ruser_desktop_dirz PlatformDirsABC.user_desktop_dirr1rcy)z+:return: runtime directory tied to the userNr.r/s ruser_runtime_dirz PlatformDirsABC.user_runtime_dirr1rcy)z*:return: runtime directory shared by usersNr.r/s rsite_runtime_dirz PlatformDirsABC.site_runtime_dirr1rc,t|jS)z#:return: data path tied to the user)rr0r/s ruser_data_pathzPlatformDirsABC.user_data_pathD&&''rc,t|jS)z":return: data path shared by users)rr3r/s rsite_data_pathzPlatformDirsABC.site_data_pathrRrc,t|jS)z%:return: config path tied to the user)rr5r/s ruser_config_pathz PlatformDirsABC.user_config_pathD(())rc,t|jS)z(:return: config path shared by the users)rr7r/s rsite_config_pathz PlatformDirsABC.site_config_pathrWrc,t|jS)z$:return: cache path tied to the user)rr9r/s ruser_cache_pathzPlatformDirsABC.user_cache_pathD''((rc,t|jS)z#:return: cache path shared by users)rr;r/s rsite_cache_pathzPlatformDirsABC.site_cache_pathr\rc,t|jS)z$:return: state path tied to the user)rr=r/s ruser_state_pathzPlatformDirsABC.user_state_pathr\rc,t|jS)z":return: log path tied to the user)rr?r/s r user_log_pathzPlatformDirsABC.user_log_pathsD%%&&rc,t|jS)z*:return: documents a path tied to the user)rrAr/s ruser_documents_pathz#PlatformDirsABC.user_documents_pathD++,,rc,t|jS)z(:return: downloads path tied to the user)rrCr/s ruser_downloads_pathz#PlatformDirsABC.user_downloads_pathrerc,t|jS)z':return: pictures path tied to the user)rrEr/s ruser_pictures_pathz"PlatformDirsABC.user_pictures_pathsD**++rc,t|jS)z%:return: videos path tied to the user)rrGr/s ruser_videos_pathz PlatformDirsABC.user_videos_pathrWrc,t|jS)z$:return: music path tied to the user)rrIr/s ruser_music_pathzPlatformDirsABC.user_music_pathr\rc,t|jS)z&:return: desktop path tied to the user)rrKr/s ruser_desktop_pathz!PlatformDirsABC.user_desktop_pathD))**rc,t|jS)z&:return: runtime path tied to the user)rrMr/s ruser_runtime_pathz!PlatformDirsABC.user_runtime_pathrprc,t|jS)z%:return: runtime path shared by users)rrOr/s rsite_runtime_pathz!PlatformDirsABC.site_runtime_pathrprc#DK|j|jyw)z4:yield: all user and site configuration directories.N)r5r7r/s riter_config_dirsz PlatformDirsABC.iter_config_dirss"""""" c#DK|j|jyw)z+:yield: all user and site data directories.N)r0r3r/s riter_data_dirszPlatformDirsABC.iter_data_dirs s      rwc#DK|j|jyw)z,:yield: all user and site cache directories.N)r9r;r/s riter_cache_dirszPlatformDirsABC.iter_cache_dirss!!!!!!rwc#DK|j|jyw)z.:yield: all user and site runtime directories.N)rMrOr/s riter_runtime_dirsz!PlatformDirsABC.iter_runtime_dirss######rwc#PK|jD]}t|yw)z.:yield: all user and site configuration paths.N)rvrr's riter_config_pathsz!PlatformDirsABC.iter_config_pathss#))+Dt* ,$&c#PK|jD]}t|yw)z%:yield: all user and site data paths.N)ryrr's riter_data_pathszPlatformDirsABC.iter_data_pathss#'')Dt* *rc#PK|jD]}t|yw)z&:yield: all user and site cache paths.N)r{rr's riter_cache_pathsz PlatformDirsABC.iter_cache_paths#s#((*Dt* +rc#PK|jD]}t|yw)z(:yield: all user and site runtime paths.N)r}rr's riter_runtime_pathsz"PlatformDirsABC.iter_runtime_paths(s#**,Dt* -r)NNNFFTF)r str | Nonerzstr | Literal[False] | NonerrrboolrrrrrrreturnNone)r strrr)rrrr)r+rrr)rr)rr)rz Iterator[str])rzIterator[Path])2__name__ __module__ __qualname____doc__rr"rr,propertyrr0r3r5r7r9r;r=r?rArCrErGrIrKrMrOrQrTrVrYr[r^r`rbrdrgrirkrmrorrrtrvryr{r}rrrrr.rrr r s7#15"#= = /=  =  =  = = =  = ~: 776699<<88778866<<<<;;9988::::99((((****))))))''----,,**))++++++# ! " $    rr )r __future__rrabcrrpathlibrtypingrcollections.abcrr r r.rrrs." # (\c\rPK!))#__pycache__/android.cpython-312.pycnu[ Cg5#0dZddlmZddlZddlZddlZddlmZddlm Z m Z ddl m Z Gdd e Z ed dd Zed dd Zed dd Zed ddZed ddZed ddZd gZy)zAndroid.) annotationsN) lru_cache) TYPE_CHECKINGcast)PlatformDirsABCc0eZdZdZeddZeddZeddZeddZeddZ eddZ eddZ edd Z edd Z edd Zedd Zedd ZeddZeddZeddZeddZy)Androida" Follows the guidance `from here `_. Makes use of the `appname `, `version `, `ensure_exists `. cJ|jtdtdS)zd:return: data directory tied to the user, e.g. ``/data/user///files/``strfiles_append_app_name_and_versionr_android_folderselfs C/opt/hc_python/lib/python3.12/site-packages/platformdirs/android.py user_data_dirzAndroid.user_data_dir"00e_=N1OQXYYc|jS)z@:return: data directory shared by users, same as `user_data_dir`rrs r site_data_dirzAndroid.site_data_dir!!!rcJ|jtdtdS)z :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` r shared_prefsrrs ruser_config_dirzAndroid.user_config_dir!s" 00e_=N1OQ_``rc|jS)zH:return: config directory shared by the users, same as `user_config_dir`)rrs rsite_config_dirzAndroid.site_config_dir)s###rcJ|jtdtdS)ze:return: cache directory tied to the user, e.g.,``/data/user///cache/``r cacherrs ruser_cache_dirzAndroid.user_cache_dir.rrc|jS)zB:return: cache directory shared by users, same as `user_cache_dir`)r"rs rsite_cache_dirzAndroid.site_cache_dir3s"""rc|jS)zB:return: state directory tied to the user, same as `user_data_dir`rrs ruser_state_dirzAndroid.user_state_dir8rrcv|j}|jr tjj |d}|S)z :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user///cache//log`` logr"opinionospathjoinrr,s r user_log_dirzAndroid.user_log_dir=/ "" <<77<<e,D rctS)zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)_android_documents_folderrs ruser_documents_dirzAndroid.user_documents_dirH )**rctS)zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)_android_downloads_folderrs ruser_downloads_dirzAndroid.user_downloads_dirMr4rctS)zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)_android_pictures_folderrs ruser_pictures_dirzAndroid.user_pictures_dirRs ())rctS)zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)_android_videos_folderrs ruser_videos_dirzAndroid.user_videos_dirWs &''rctS)zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)_android_music_folderrs ruser_music_dirzAndroid.user_music_dir\s %&&rcy)zP:return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``z/storage/emulated/0/Desktoprs ruser_desktop_dirzAndroid.user_desktop_diras-rcv|j}|jr tjj |d}|S)z :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user///cache//tmp`` tmpr)r.s ruser_runtime_dirzAndroid.user_runtime_dirfr0rc|jS)zF:return: runtime directory shared by users, same as `user_runtime_dir`)rFrs rsite_runtime_dirzAndroid.site_runtime_dirqs$$$rNreturnr )__name__ __module__ __qualname____doc__propertyrrrrr"r$r&r/r3r7r:r=r@rCrFrHrBrrr r sMZZ""aa$$ZZ##""++++**((''--%%rr )maxsizecd}tsM ddlm}td|j }|j j j}|; ddl m }|d}|j j j}|Stjd}tjD])}|j|s|j!dd}nd}|Ttjd}tjD]*}|j|s|j!dd}|Sd}|S#t$rd}YwxYw#t$rd}YwxYw) zE:return: base folder for the Android OS or None if it cannot be foundNr) mActivityandroid.content.Context autoclassz /data/(data|user/\d+)/(.+)/filesz/filesz7/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files)randroidrRrgetApplicationContext getFilesDir getParentFilegetAbsolutePath ExceptionjniusrUrecompilesysr,matchsplit)resultrRcontextrUpatternr,s rrrws\F   )4i6U6U6WXG((*88:JJLF~  ( 9:G((*88:JJLF~**@AHHD}}T"H-a0 F ~**WXHHD}}T"H-a0 M  F MA F  F s$A E:E E E EEc ddlm}|d}|d}|j|jj }|S#t $rd}Y|SwxYw)z,:return: documents folder for the Android OSrrTrSandroid.os.Environmentz/storage/emulated/0/Documents)r\rUgetExternalFilesDirDIRECTORY_DOCUMENTSrZr[)rUrc environment documents_dirs rr2r2c8#56 89 $889X9XYiik   87 8?A AAc ddlm}|d}|d}|j|jj }|S#t $rd}Y|SwxYw)z,:return: downloads folder for the Android OSrrTrSrfz/storage/emulated/0/Downloads)r\rUrgDIRECTORY_DOWNLOADSrZr[)rUrcri downloads_dirs rr6r6rkrlc ddlm}|d}|d}|j|jj }|S#t $rd}Y|SwxYw)z+:return: pictures folder for the Android OSrrTrSrfz/storage/emulated/0/Pictures)r\rUrgDIRECTORY_PICTURESrZr[)rUrcri pictures_dirs rr9r9sc6#56 89 #77 8V8VWggi   65 6rlc ddlm}|d}|d}|j|jj }|S#t $rd}Y|SwxYw)z):return: videos folder for the Android OSrrTrSrfz/storage/emulated/0/DCIM/Camera)r\rUrgDIRECTORY_DCIMrZr[)rUrcri videos_dirs rr<r<sc7#56 89 !55k6P6PQaac   76 7rlc ddlm}|d}|d}|j|jj }|S#t $rd}Y|SwxYw)z(:return: music folder for the Android OSrrTrSrfz/storage/emulated/0/Music)r\rUrgDIRECTORY_MUSICrZr[)rUrcri music_dirs rr?r?sc0#56 89  44[5P5PQaac   0/ 0rl)rJz str | NonerI)rN __future__rr+r]r_ functoolsrtypingrrapirr rr2r6r9r<r?__all__rBrrr~s" & f%of%R 1,,^ 1   1   1   1   1    rPK!qq#__pycache__/version.cpython-312.pycnu[ CgUgdZdZerddlmZddlmZeeeefdfZneZee d<ee d<ee d<ee d <d xZ Z d xZ Z y ) ) __version____version_tuple__version version_tupleF)Tuple)Union.rrrrz4.3.7)N)__all__ TYPE_CHECKINGtypingrrintstr VERSION_TUPLEobject__annotations__rrrrC/opt/hc_python/lib/python3.12/site-packages/platformdirs/version.pyrsfK J %S/3./MM   g$--MrPK!vq99 __pycache__/unix.cpython-312.pycnu[ Cg(dZddlmZddlZddlZddlmZddlmZddl m Z m Z ddl m Z e rdd lmZej d k(rdd Zndd lmZGd de ZddZddZdgZy)zUnix.) annotationsN) ConfigParser)Path) TYPE_CHECKINGNoReturn)PlatformDirsABC)Iteratorwin32cd}t|)Nzshould only be used on Unix) RuntimeError)msgs @/opt/hc_python/lib/python3.12/site-packages/platformdirs/unix.pygetuidrs+3)rceZdZdZeddZeddZeddZeddZeddZ eddZ eddZ edd Z edd Z edd Zedd Zedd ZeddZeddZeddZeddZeddZeddZeddZeddZeddZddZddZy)Unixa On Unix/Linux, we follow the `XDG Basedir Spec `_. The spec allows overriding directories with environment variables. The examples shown are the default values, alongside the name of the environment variable that overrides them. Makes use of the `appname `, `version `, `multipath `, `opinion `, `ensure_exists `. ctjjdd}|jstjj d}|j |S)z :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version`` XDG_DATA_HOMEz~/.local/shareosenvirongetstrippath expanduser_append_app_name_and_versionselfrs r user_data_dirzUnix.user_data_dir'sG zz~~or2zz|77%%&67D0066rc tjjdd}|jsdtjd}|j tjDcgc]}|j |c}Scc}w)N XDG_DATA_DIRSrz/usr/local/sharez /usr/share)rrrrpathsepsplitrr rps r_site_data_dirszUnix._site_data_dirs2sczz~~or2zz|%bjj\Bjj>TU>T11!4>TUUUs&Bcz|j}|js|dStjj |S)aZ :return: data directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIRS`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` r)r( multipathrr$joinr dirss r site_data_dirzUnix.site_data_dir9s2##~~7Nzzt$$rctjjdd}|jstjj d}|j |S)z :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or ``$XDG_CONFIG_HOME/$appname/$version`` XDG_CONFIG_HOMErz ~/.configrrs ruser_config_dirzUnix.user_config_dirFsG zz~~/4zz|77%%k2D0066rctjjdd}|jsd}|j tj Dcgc]}|j |c}Scc}w)NXDG_CONFIG_DIRSrz/etc/xdg)rrrrr%r$rr&s r_site_config_dirszUnix._site_config_dirsQsWzz~~/4zz|D>Bjj>TU>T11!4>TUUUsA/cz|j}|js|dStjj |S)a2 :return: config directories shared by users (if `multipath ` is enabled and ``XDG_CONFIG_DIRS`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/etc/xdg/$appname/$version`` r)r4r*rr$r+r,s rsite_config_dirzUnix.site_config_dirXs2%%~~7Nzzt$$rctjjdd}|jstjj d}|j |S)z :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``~/$XDG_CACHE_HOME/$appname/$version`` XDG_CACHE_HOMErz~/.cacherrs ruser_cache_dirzUnix.user_cache_diresG zz~~.3zz|77%%j1D0066rc$|jdS)zO:return: cache directory shared by users, e.g. ``/var/cache/$appname/$version``z /var/cache)rr s rsite_cache_dirzUnix.site_cache_dirps00>>rctjjdd}|jstjj d}|j |S)z :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or ``$XDG_STATE_HOME/$appname/$version`` XDG_STATE_HOMErz~/.local/staterrs ruser_state_dirzUnix.user_state_dirusH zz~~.3zz|77%%&67D0066rc|j}|jr1tjj |d}|j ||S)zg:return: log directory tied to the user, same as `user_state_dir` if not opinionated else ``log`` in itlog)r?opinionrrr+_optionally_create_directoryrs r user_log_dirzUnix.user_log_dirs="" <<77<<e,D  - -d 3 rctddS)zC:return: documents directory tied to the user, e.g. ``~/Documents``XDG_DOCUMENTS_DIRz ~/Documents_get_user_media_dirr;s ruser_documents_dirzUnix.user_documents_dirs##6 FFrctddS)zC:return: downloads directory tied to the user, e.g. ``~/Downloads``XDG_DOWNLOAD_DIRz ~/DownloadsrGr;s ruser_downloads_dirzUnix.user_downloads_dirs##5}EErctddS)zA:return: pictures directory tied to the user, e.g. ``~/Pictures``XDG_PICTURES_DIRz ~/PicturesrGr;s ruser_pictures_dirzUnix.user_pictures_dirs##5|DDrctddS)z=:return: videos directory tied to the user, e.g. ``~/Videos``XDG_VIDEOS_DIRz~/VideosrGr;s ruser_videos_dirzUnix.user_videos_dirs##3Z@@rctddS)z;:return: music directory tied to the user, e.g. ``~/Music`` XDG_MUSIC_DIRz~/MusicrGr;s ruser_music_dirzUnix.user_music_dirs#?I>>rctddS)z?:return: desktop directory tied to the user, e.g. ``~/Desktop``XDG_DESKTOP_DIRz ~/DesktoprGr;s ruser_desktop_dirzUnix.user_desktop_dirs##4kBBrcDtjjdd}|js`tj j dr4dt}t|jsdt}n dt}|j|S)az :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version``. For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/user/$(id -u)/$appname/$version`` if exists, otherwise ``/tmp/runtime-$(id -u)/$appname/$version``, if``$XDG_RUNTIME_DIR`` is not set. XDG_RUNTIME_DIRrfreebsdopenbsdnetbsdz/var/run/user/z /tmp/runtime-z /run/user/) rrrrsysplatform startswithrrexistsrrs ruser_runtime_dirzUnix.user_runtime_dirszz~~/4zz|||&&'GH'z2Dz((**68*5D#FH:.0066rctjjdd}|js$tj j drd}nd}|j|S)am :return: runtime directory shared by users, e.g. ``/run/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version``. Note that this behaves almost exactly like `user_runtime_dir` if ``$XDG_RUNTIME_DIR`` is set, but will fall back to paths associated to the root user instead of a regular logged-in user if it's not set. If you wish to ensure that a logged-in root user path is returned e.g. ``/run/user/0``, use `user_runtime_dir` instead. For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/$appname/$version`` if ``$XDG_RUNTIME_DIR`` is not set. rZrr[z/var/runz/run)rrrrr_r`rarrs rsite_runtime_dirzUnix.site_runtime_dirsPzz~~/4zz|||&&'GH!0066rc8|j|jS)zh:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathr.r;s rsite_data_pathzUnix.site_data_paths44T5G5GHHrc8|j|jS)zj:return: config path shared by the users, returns the first item, even if ``multipath`` is set to ``True``)rgr6r;s rsite_config_pathzUnix.site_config_paths44T5I5IJJrc8|j|jS)zi:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)rgr<r;s rsite_cache_pathzUnix.site_cache_paths44T5H5HIIrc#TK|j|jEd{y7w)z4:yield: all user and site configuration directories.N)r1r4r;s riter_config_dirszUnix.iter_config_dirss!""")))) (&(c#TK|j|jEd{y7w)z+:yield: all user and site data directories.N)r!r(r;s riter_data_dirszUnix.iter_data_dirss!   ''''roN)returnstr)rrz list[str])rrr)rrz Iterator[str])__name__ __module__ __qualname____doc__propertyr!r(r.r1r4r6r9r<r?rDrIrLrOrRrUrXrcrerhrjrlrnrqrrrrs 77VV  % %77VV  % %77??77GGFFEEAA??CC77&77*IIKKJJ* (rrct|}|Otjj|dj }|stj j |}|S)Nr)_get_user_dirs_folderrrrrrr)env_varfallback_tilde_path media_dirs rrHrHsM%g.IJJNN7B/557 **+>?I rcttjdz }|jrt }|j 5}|j d|jddd||dvry|d|jd}|jdtjjdSy#1swYXxYw)z{ Return directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/. zuser-dirs.dirsz[top] Ntop"z$HOME~) rrr1rbropen read_stringreadrreplacerrr)keyuser_dirs_config_pathparserstreamrs rr{r{s!!7!78;KK##% " ' ' )V   8 9* fUm #e}S!'',||GRWW%7%7%<== * )s #CC)rrr)r|rsr}rsrrrs)rrsrrz str | None)rw __future__rrr_ configparserrpathlibrtypingrrapir collections.abcr r`rrrHr{__all__ryrrrs^ " %* (<<7 N(?N(b4  rPK!nK5K5#__pycache__/windows.cpython-312.pycnu[ Cg'dZddlmZddlZddlZddlmZddlmZddl m Z erddl m Z Gd d e Z dd Zdd Zdd ZddZddZedeZd gZy)zWindows.) annotationsN) lru_cache) TYPE_CHECKING)PlatformDirsABC)Callablec>eZdZdZeddZddddZeddZeddZeddZ edd Z edd Z edd Z edd Z edd ZeddZeddZeddZeddZeddZeddZeddZy)Windowsa `MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `, `ensure_exists `. c|jrdnd}tjjt |}|j |S)z :return: data directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname`` (not roaming) or ``%USERPROFILE%\AppData\Roaming\$appauthor\$appname`` (roaming) CSIDL_APPDATACSIDL_LOCAL_APPDATA)roamingospathnormpathget_win_folder _append_parts)selfconstrs C/opt/hc_python/lib/python3.12/site-packages/platformdirs/windows.py user_data_dirzWindows.user_data_dirs<$(<<5Jwwu 56!!$''N opinion_valuecg}|jr|jdur+|jxs |j}|j||j|j||jr|j||jr|j|jt j j|g|}|j||S)NF) appname appauthorappendopinionversionrrjoin_optionally_create_directory)rrrparamsauthors rrzWindows._append_parts&s <<~~U*74<< f% MM$,, '(T\\ m,|| dll+ww||D*6* ))$/ rcttjjtd}|j |S)zT:return: data directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname``CSIDL_COMMON_APPDATArrrrrrrs r site_data_dirzWindows.site_data_dir5s/ww/E FG!!$''rc|jS)zC:return: config directory tied to the user, same as `user_data_dir`rrs ruser_config_dirzWindows.user_config_dir;!!!rc|jS)zF:return: config directory shared by the users, same as `site_data_dir`)r)r,s rsite_config_dirzWindows.site_config_dir@r.rcxtjjtd}|j |dS)z :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname\Cache\$version`` r Cacherr'r(s ruser_cache_dirzWindows.user_cache_dirEs4 ww/D EF!!$g!>>rcxtjjtd}|j |dS)zd:return: cache directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname\Cache\$version``r&r2rr'r(s rsite_cache_dirzWindows.site_cache_dirNs4ww/E FG!!$g!>>rc|jS)zB:return: state directory tied to the user, same as `user_data_dir`r+r,s ruser_state_dirzWindows.user_state_dirTr.rc|j}|jr1tjj |d}|j ||S)zg:return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in itLogs)rrrrr!r"r(s r user_log_dirzWindows.user_log_dirYs=!! <<77<<f-D  - -d 3 rcRtjjtdS)zN:return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents``CSIDL_PERSONALrrrrr,s ruser_documents_dirzWindows.user_documents_dirbsww/? @AArcRtjjtdS)zN:return: downloads directory tied to the user e.g. ``%USERPROFILE%\Downloads``CSIDL_DOWNLOADSr=r,s ruser_downloads_dirzWindows.user_downloads_dirgsww/@ ABBrcRtjjtdS)zL:return: pictures directory tied to the user e.g. ``%USERPROFILE%\Pictures``CSIDL_MYPICTURESr=r,s ruser_pictures_dirzWindows.user_pictures_dirlsww/A BCCrcRtjjtdS)zH:return: videos directory tied to the user e.g. ``%USERPROFILE%\Videos`` CSIDL_MYVIDEOr=r,s ruser_videos_dirzWindows.user_videos_dirqww ?@@rcRtjjtdS)zF:return: music directory tied to the user e.g. ``%USERPROFILE%\Music`` CSIDL_MYMUSICr=r,s ruser_music_dirzWindows.user_music_dirvrHrcRtjjtdS)zK:return: desktop directory tied to the user, e.g. ``%USERPROFILE%\Desktop``CSIDL_DESKTOPDIRECTORYr=r,s ruser_desktop_dirzWindows.user_desktop_dir{sww/G HIIrctjjtjjt dd}|j |S)z :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname`` r Temp)rrrr!rrr(s ruser_runtime_dirzWindows.user_runtime_dirs? ww ^rArDrGrKrNrQrSrrr r s_((GK (( """"???? ""BBCCDDAAAAJJ((%%rr ct|}||Sddddj|}|d|}t|tjj|}|d|}t||S)z&Get folder from environment variables.APPDATAALLUSERSPROFILE LOCALAPPDATA)r r&r Unknown CSIDL name: zUnset environment variable: )(get_win_folder_if_csidl_name_not_env_varget ValueErrorrenviron) csidl_nameresult env_var_namemsgs rget_win_folder_from_env_varsrjs 5j AF  # 1- c*o  $ZL1o ZZ^^L )F ~,\N;o MrcB|dk(rNtjjtjjtjddS|dk(rNtjjtjjtjddS|dk(rNtjjtjjtjddS|dk(rNtjjtjjtjdd S|d k(rNtjjtjjtjdd Sy ) zMGet a folder for a CSIDL name that does not exist as an environment variable.r< USERPROFILE Documentsr@ DownloadsrCPicturesrFVideosrJMusicN)rrr!rre)rfs rrbrbs%%ww||BGG,,RZZ -FGUU&&ww||BGG,,RZZ -FGUU''ww||BGG,,RZZ -FGTT_$ww||BGG,,RZZ -FGRR_$ww||BGG,,RZZ -FGQQ rc  ddddddddd j|}|d |}t|tjd k7rtd d l}|j |jd}|j||\}}t|S)z Get folder from the registry. This is a fallback technique at best. I'm not sure if using the registry for these guarantees us the correct answer for all CSIDL_* names. AppDatazCommon AppDataz Local AppDataPersonalz&{374DE290-123F-4565-9164-39C4925E467B}z My PictureszMy VideozMy Music)r r&r r<r@rCrFrJNrawin32rz@Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders) rcrdsysplatformNotImplementedErrorwinregOpenKeyHKEY_CURRENT_USER QueryValueExrU)rfshell_folder_namerirykey directory_s rget_win_folder_from_registryrs# 0.$C)##  c*o $ZL1o ||w!! ..113v wC&&s,=>LIq y>rc ddl}ddddddd d d d j|}|d |}t||jd}t |d}|j j d|dd|td|Dr:|jd}|jj|j|dr|}|dk(r*tjj|jdS|jS)zGet folder with ctypes.rN#' () r r&r r<rCrFrJr@rMraiwindllc38K|]}t|dkDyw)N)ord).0cs r z,get_win_folder_via_ctypes..s %A3q6C<sr@rn)ctypesrcrdcreate_unicode_buffergetattrshell32SHGetFolderPathWanykernel32GetShortPathNameWvaluerrr!)rfr csidl_constribufrbuf2s rget_win_folder_via_ctypesrs  "!"$  c*o$ZL1o  & &t ,C VX &F NN##D+tQD % %%++D1 ?? , ,SYYd CC&&ww||CII{33 99rc ddl}t|drtS ddl}t S#t$rYwxYw#t$r t cYSwxYw)Nrr)rhasattrr ImportErrorryrrj)rrys r_pick_get_win_folderrsV- 68 $, ,,,+     ,++,s#2 //AA)maxsize)rfrUrTrU)rfrUrTrV)rTzCallable[[str], str])rZ __future__rrrv functoolsrtypingrapircollections.abcrr rjrbrrrr__all__r\rrrsl"  (|%o|%~*&<$N , )4()=)?@ rPK!1$d8M8M$__pycache__/__init__.cpython-312.pycnu[ Cg WdZddlmZddlZddlZddlmZddlmZddl m Z ddl m Z er dd l mZdd lmZej d k(rdd lmZnej d k(rddlmZnddlmZd2dZereZneZeZ d3 d4dZ d3 d5dZ d3 d4dZ d3 d5dZ d6 d7dZ d6 d7dZ d3 d4dZ! d6 d7dZ"d8dZ#d8dZ$d8dZ%d8dZ&d8dZ'd8dZ( d6 d7dZ) d6 d7d Z* d3 d9d!Z+ d3 d:d"Z, d3 d9d#Z- d3 d:d$Z. d6 d;d%Z/ d6 d;d&Z0 d3 d9d'Z1 d6 d;d(Z2d for details and usage. ) annotationsN) TYPE_CHECKING)PlatformDirsABC) __version__)__version_tuple__)Path)Literalwin32)Windowsdarwin)MacOS)Unixctjddk(r]tjddk(rEtjdstjdrtSddlm}|dd lm}|StS) N ANDROID_DATAz/data ANDROID_ROOTz/systemSHELLPREFIXr)_android_folder)Android)osgetenv_Resultplatformdirs.androidrr)rrs D/opt/hc_python/lib/python3.12/site-packages/platformdirs/__init__.py_set_platform_dir_classrsX yy G+ .0IY0V 99W 8!4N8   ( 4N Nc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: data directory tied to the user appname appauthorversionroaming ensure_exists) PlatformDirs user_data_dirrs rr&r&5' #   m rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: data directory shared by users r r!r" multipathr$)r% site_data_dirr)s rr+r+Ms' #   m rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config directory tied to the user r)r%user_config_dirrs rr-r-e' #   o rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config directory shared by the users r))r%site_config_dirr)s rr0r0}s' #   o rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: cache directory tied to the user r r!r"opinionr$)r%user_cache_dirr2s rr4r4' #   n rc6t|||||jSa :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: cache directory tied to the user r2)r%site_cache_dirr2s rr8r8r5rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: state directory tied to the user r)r%user_state_dirrs rr:r:r5rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: log directory tied to the user r2)r% user_log_dirr2s rr<r<s' #   l rc*tjS)z.:returns: documents directory tied to the user)r%user_documents_dirrrr>r> > , ,,rc*tjS)z.:returns: downloads directory tied to the user)r%user_downloads_dirr?rrrBrBr@rc*tjS)z-:returns: pictures directory tied to the user)r%user_pictures_dirr?rrrDrD > + ++rc*tjS)z+:returns: videos directory tied to the user)r%user_videos_dirr?rrrGrG > ) ))rc*tjS)z*:returns: music directory tied to the user)r%user_music_dirr?rrrJrJ s > ( ((rc*tjS)z,:returns: desktop directory tied to the user)r%user_desktop_dirr?rrrLrL > * **rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: runtime directory tied to the user r2)r%user_runtime_dirr2s rrOrO( #    rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: runtime directory shared by users r2)r%site_runtime_dirr2s rrRrR+rPrc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: data path tied to the user r)r%user_data_pathrs rrTrTCr5rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `multipath `. :param ensure_exists: See `ensure_exists `. :returns: data path shared by users r))r%site_data_pathr)s rrVrV[s' #   n rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config path tied to the user r)r%user_config_pathrs rrXrXsrPrc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config path shared by the users r))r%site_config_pathr)s rrZrZs( #    rc6t|||||jSr7)r%site_cache_pathr2s rr\r\r.rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: cache path tied to the user r2)r%user_cache_pathr2s rr^r^r.rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: state path tied to the user r)r%user_state_pathrs rr`r`r.rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: log path tied to the user r2)r% user_log_pathr2s rrbrbr'rc*tjS)z+:returns: documents a path tied to the user)r%user_documents_pathr?rrrdrd > - --rc*tjS)z):returns: downloads path tied to the user)r%user_downloads_pathr?rrrgrgrerc*tjS)z(:returns: pictures path tied to the user)r%user_pictures_pathr?rrriri r@rc*tjS)z&:returns: videos path tied to the user)r%user_videos_pathr?rrrkrkrMrc*tjS)z%:returns: music path tied to the user)r%user_music_pathr?rrrmrmrHrc*tjS)z':returns: desktop path tied to the user)r%user_desktop_pathr?rrrororErc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: runtime path tied to the user r2)r%user_runtime_pathr2s rrqrq!( #    rc6t|||||jS)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: runtime path shared by users r2)r%site_runtime_pathr2s rrtrt9rrr)%AppDirsr%rr__version_info__r8r\r0rZr+rVrRrtr4r^r-rXr&rTrLror>rdrBrgr<rbrJrmrDrirOrqr:r`rGrk)returnztype[PlatformDirsABC])NNNFF) r str | Noner!str | Literal[False] | Noner"rxr#boolr$rzrwstr) r rxr!ryr"rxr*rzr$rzrwr{)NNNTF) r rxr!ryr"rxr3rzr$rzrwr{)rwr{) r rxr!ryr"rxr#rzr$rzrwr ) r rxr!ryr"rxr*rzr$rzrwr ) r rxr!ryr"rxr3rzr$rzrwr )rwr )<__doc__ __future__rrsystypingrapirr"rrrvpathlibr r platformplatformdirs.windowsr rplatformdirs.macosrplatformdirs.unixrrr%rur&r+r-r0r4r8r:r<r>rBrDrGrJrLrOrRrTrVrXrZr\r^r`rbrdrgrirkrmrorqrt__all__r?rrrs# :<<77\\X31 L*,L -1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     0- - , * ) + -1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     0. . - + * , -1  *     2-1  *     0& rPK!qq$__pycache__/__main__.cpython-312.pycnu[ CgJdZddlmZddlmZmZdZddZedk(reyy) zMain entry point.) annotations) PlatformDirs __version__) user_data_diruser_config_diruser_cache_diruser_state_dir user_log_diruser_documents_diruser_downloads_diruser_pictures_diruser_videos_diruser_music_diruser_runtime_dir site_data_dirsite_config_dirsite_cache_dirsite_runtime_dirc d}d}tdtdtdt||d}tD]}t|dt ||td t||}tD]}t|dt ||td t|}tD]}t|dt ||td t|d }tD]}t|dt ||y)zRun the main entry point.MyApp MyCompanyz-- platformdirs z --z%-- app dirs (with optional 'version')z1.0)versionz: z) -- app dirs (without optional 'version')z+ -- app dirs (without optional 'appauthor')z( -- app dirs (with disabled 'appauthor')F) appauthorN)printrrPROPSgetattr)app_name app_authordirsprops D/opt/hc_python/lib/python3.12/site-packages/platformdirs/__main__.pymainr"s HJ [M -. 12 *e r,s."2 &08 zFr#PK!LvY"Y"!__pycache__/macos.cpython-312.pycnu[ Cg hdZddlmZddlZddlZddlmZddlm Z erddl m Z Gdd e Z d gZ y) zmacOS.) annotationsN) TYPE_CHECKING)PlatformDirsABC)PathcTeZdZdZeddZeddZeddZeddZeddZ eddZ eddZ edd Z edd Z edd Zedd Zedd ZeddZeddZeddZeddZeddZeddZy)MacOSa Platform directories for the macOS operating system. Follows the guidance from `Apple documentation `_. Makes use of the `appname `, `version `, `ensure_exists `. c^|jtjjdS)zb:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``z~/Library/Application Support_append_app_name_and_versionospath expanduserselfs A/opt/hc_python/lib/python3.12/site-packages/platformdirs/macos.py user_data_dirzMacOS.user_data_dirs%001C1CDc1deec tjjd}|r|jdgng}|j |jd|j rt jj|S|dS)aB :return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``. If we're using a Python binary managed by `Homebrew `_, the directory will be under the Homebrew prefix, e.g. ``/opt/homebrew/share/$appname/$version``. If `multipath ` is enabled, and we're in Homebrew, the response is a multi-path string separated by ":", e.g. ``/opt/homebrew/share/$appname/$version:/Library/Application Support/$appname/$version`` /opt/homebrewz/opt/homebrew/sharez/Library/Application Supportr sysprefix startswithr append multipathr pathsepjoinr is_homebrew path_lists r site_data_dirzMacOS.site_data_dir sojj++O< R]T667LMNce ::;YZ[ >>::??9- -|rc8|j|jS)zh:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathr"rs rsite_data_pathzMacOS.site_data_path1s44T5G5GHHrc|jS)zC:return: config directory tied to the user, same as `user_data_dir`rrs ruser_config_dirzMacOS.user_config_dir6!!!rc|jS)zF:return: config directory shared by the users, same as `site_data_dir`)r"rs rsite_config_dirzMacOS.site_config_dir;r)rc^|jtjjdS)zV:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``z~/Library/Cachesr rs ruser_cache_dirzMacOS.user_cache_dir@s%001C1CDV1WXXrc tjjd}|r|jdgng}|j |jd|j rt jj|S|dS)a1 :return: cache directory shared by users, e.g. ``/Library/Caches/$appname/$version``. If we're using a Python binary managed by `Homebrew `_, the directory will be under the Homebrew prefix, e.g. ``/opt/homebrew/var/cache/$appname/$version``. If `multipath ` is enabled, and we're in Homebrew, the response is a multi-path string separated by ":", e.g. ``/opt/homebrew/var/cache/$appname/$version:/Library/Caches/$appname/$version`` rz/opt/homebrew/var/cachez/Library/Cachesrrrs rsite_cache_dirzMacOS.site_cache_dirEsojj++O< VaT667PQRgi ::;LMN >>::??9- -|rc8|j|jS)zi:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)r$r/rs rsite_cache_pathzMacOS.site_cache_pathVs44T5H5HIIrc|jS)zB:return: state directory tied to the user, same as `user_data_dir`r'rs ruser_state_dirzMacOS.user_state_dir[r)rc^|jtjjdS)zR:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``z~/Library/Logsr rs r user_log_dirzMacOS.user_log_dir`s%001C1CDT1UVVrc@tjjdS)zC:return: documents directory tied to the user, e.g. ``~/Documents``z ~/Documentsr rrrs ruser_documents_dirzMacOS.user_documents_direww!!-00rc@tjjdS)zC:return: downloads directory tied to the user, e.g. ``~/Downloads``z ~/Downloadsr7rs ruser_downloads_dirzMacOS.user_downloads_dirjr9rc@tjjdS)zA:return: pictures directory tied to the user, e.g. ``~/Pictures``z ~/Picturesr7rs ruser_pictures_dirzMacOS.user_pictures_dirosww!!,//rc@tjjdS)z=:return: videos directory tied to the user, e.g. ``~/Movies``z~/Moviesr7rs ruser_videos_dirzMacOS.user_videos_dirtsww!!*--rc@tjjdS)z;:return: music directory tied to the user, e.g. ``~/Music``z~/Musicr7rs ruser_music_dirzMacOS.user_music_dirysww!!),,rc@tjjdS)z?:return: desktop directory tied to the user, e.g. ``~/Desktop``z ~/Desktopr7rs ruser_desktop_dirzMacOS.user_desktop_dir~sww!!+..rc^|jtjjdS)zg:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``z~/Library/Caches/TemporaryItemsr rs ruser_runtime_dirzMacOS.user_runtime_dirs%001C1CDe1fggrc|jS)zF:return: runtime directory shared by users, same as `user_runtime_dir`)rErs rsite_runtime_dirzMacOS.site_runtime_dirs$$$rN)returnstr)rHr)__name__ __module__ __qualname____doc__propertyrr"r%r(r+r-r/r1r3r5r8r;r=r?rArCrErGrrr r s{ ff II""""YY JJ""WW111100..--//hh%%rr )rM __future__ros.pathr rtypingrapirpathlibrr __all__rOrrrVs8 " |%O|%@  rPK!kU __main__.pynu[from __future__ import annotations from pip._vendor.platformdirs import PlatformDirs, __version__ PROPS = ( "user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "user_documents_dir", "user_runtime_dir", "site_data_dir", "site_config_dir", ) def main() -> None: app_name = "MyApp" app_author = "MyCompany" print(f"-- platformdirs {__version__} --") print("-- app dirs (with optional 'version')") dirs = PlatformDirs(app_name, app_author, version="1.0") for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (without optional 'version')") dirs = PlatformDirs(app_name, app_author) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (without optional 'appauthor')") dirs = PlatformDirs(app_name) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") print("\n-- app dirs (with disabled 'appauthor')") dirs = PlatformDirs(app_name, appauthor=False) for prop in PROPS: print(f"{prop}: {getattr(dirs, prop)}") if __name__ == "__main__": main() PK!R"s android.pynu[from __future__ import annotations import os import re import sys from functools import lru_cache from typing import cast from .api import PlatformDirsABC class Android(PlatformDirsABC): """ Follows the guidance `from here `_. Makes use of the `appname ` and `version `. """ @property def user_data_dir(self) -> str: """:return: data directory tied to the user, e.g. ``/data/user///files/``""" return self._append_app_name_and_version(cast(str, _android_folder()), "files") @property def site_data_dir(self) -> str: """:return: data directory shared by users, same as `user_data_dir`""" return self.user_data_dir @property def user_config_dir(self) -> str: """ :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` """ return self._append_app_name_and_version(cast(str, _android_folder()), "shared_prefs") @property def site_config_dir(self) -> str: """:return: config directory shared by the users, same as `user_config_dir`""" return self.user_config_dir @property def user_cache_dir(self) -> str: """:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``""" return self._append_app_name_and_version(cast(str, _android_folder()), "cache") @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user///cache//log`` """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "log") return path @property def user_documents_dir(self) -> str: """ :return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents`` """ return _android_documents_folder() @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user///cache//tmp`` """ path = self.user_cache_dir if self.opinion: path = os.path.join(path, "tmp") return path @lru_cache(maxsize=1) def _android_folder() -> str | None: """:return: base folder for the Android OS or None if cannot be found""" try: # First try to get path to android app via pyjnius from jnius import autoclass Context = autoclass("android.content.Context") # noqa: N806 result: str | None = Context.getFilesDir().getParentFile().getAbsolutePath() except Exception: # if fails find an android folder looking path on the sys.path pattern = re.compile(r"/data/(data|user/\d+)/(.+)/files") for path in sys.path: if pattern.match(path): result = path.split("/files")[0] break else: result = None return result @lru_cache(maxsize=1) def _android_documents_folder() -> str: """:return: documents folder for the Android OS""" # Get directories with pyjnius try: from jnius import autoclass Context = autoclass("android.content.Context") # noqa: N806 Environment = autoclass("android.os.Environment") # noqa: N806 documents_dir: str = Context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() except Exception: documents_dir = "/storage/emulated/0/Documents" return documents_dir __all__ = [ "Android", ] PK!NN version.pynu["""Version information""" __version__ = "2.5.2" __version_info__ = (2, 5, 2) PK!py.typednu[PK!jo'' windows.pynu[from __future__ import annotations import ctypes import os from functools import lru_cache from typing import Callable from .api import PlatformDirsABC class Windows(PlatformDirsABC): """`MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `.""" @property def user_data_dir(self) -> str: """ :return: data directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname`` (not roaming) or ``%USERPROFILE%\\AppData\\Roaming\\$appauthor\\$appname`` (roaming) """ const = "CSIDL_APPDATA" if self.roaming else "CSIDL_LOCAL_APPDATA" path = os.path.normpath(get_win_folder(const)) return self._append_parts(path) 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) @property def site_data_dir(self) -> str: """:return: data directory shared by users, e.g. ``C:\\ProgramData\\$appauthor\\$appname``""" path = os.path.normpath(get_win_folder("CSIDL_COMMON_APPDATA")) return self._append_parts(path) @property def user_config_dir(self) -> str: """:return: config directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def site_config_dir(self) -> str: """:return: config directory shared by the users, same as `site_data_dir`""" return self.site_data_dir @property def user_cache_dir(self) -> str: """ :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\\AppData\\Local\\$appauthor\\$appname\\Cache\\$version`` """ path = os.path.normpath(get_win_folder("CSIDL_LOCAL_APPDATA")) return self._append_parts(path, opinion_value="Cache") @property def user_state_dir(self) -> str: """:return: state directory tied to the user, same as `user_data_dir`""" return self.user_data_dir @property def user_log_dir(self) -> str: """ :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in it """ path = self.user_data_dir if self.opinion: path = os.path.join(path, "Logs") return path @property 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")) @property def user_runtime_dir(self) -> str: """ :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\\AppData\\Local\\Temp\\$appauthor\\$appname`` """ path = os.path.normpath(os.path.join(get_win_folder("CSIDL_LOCAL_APPDATA"), "Temp")) return self._append_parts(path) def get_win_folder_from_env_vars(csidl_name: str) -> str: """Get folder from environment variables.""" if csidl_name == "CSIDL_PERSONAL": # does not have an environment name return os.path.join(os.path.normpath(os.environ["USERPROFILE"]), "Documents") env_var_name = { "CSIDL_APPDATA": "APPDATA", "CSIDL_COMMON_APPDATA": "ALLUSERSPROFILE", "CSIDL_LOCAL_APPDATA": "LOCALAPPDATA", }.get(csidl_name) if env_var_name is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") result = os.environ.get(env_var_name) if result is None: raise ValueError(f"Unset environment variable: {env_var_name}") return result def get_win_folder_from_registry(csidl_name: str) -> str: """Get folder from the registry. This is a fallback technique at best. I'm not sure if using the registry for this guarantees us the correct answer for all CSIDL_* names. """ shell_folder_name = { "CSIDL_APPDATA": "AppData", "CSIDL_COMMON_APPDATA": "Common AppData", "CSIDL_LOCAL_APPDATA": "Local AppData", "CSIDL_PERSONAL": "Personal", }.get(csidl_name) if shell_folder_name is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") import winreg key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") directory, _ = winreg.QueryValueEx(key, shell_folder_name) return str(directory) def get_win_folder_via_ctypes(csidl_name: str) -> str: """Get folder with ctypes.""" csidl_const = { "CSIDL_APPDATA": 26, "CSIDL_COMMON_APPDATA": 35, "CSIDL_LOCAL_APPDATA": 28, "CSIDL_PERSONAL": 5, }.get(csidl_name) if csidl_const is None: raise ValueError(f"Unknown CSIDL name: {csidl_name}") buf = ctypes.create_unicode_buffer(1024) windll = getattr(ctypes, "windll") # noqa: B009 # using getattr to avoid false positive with mypy type checker windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) # Downgrade to short path name if it has highbit chars. if any(ord(c) > 255 for c in buf): buf2 = ctypes.create_unicode_buffer(1024) if windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): buf = buf2 return buf.value def _pick_get_win_folder() -> Callable[[str], str]: if hasattr(ctypes, "windll"): return get_win_folder_via_ctypes try: import winreg # noqa: F401 except ImportError: return get_win_folder_from_env_vars else: return get_win_folder_from_registry get_win_folder = lru_cache(maxsize=None)(_pick_get_win_folder()) __all__ = [ "Windows", ] PK! Vp..api.pynu[from __future__ import annotations import os import sys from abc import ABC, abstractmethod from pathlib import Path if sys.version_info >= (3, 8): # pragma: no branch from typing import Literal # pragma: no cover class PlatformDirsABC(ABC): """ Abstract base class for platform directories. """ def __init__( self, appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, multipath: bool = False, opinion: bool = True, ): """ 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`. """ 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 ``.``. """ 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 `_). """ self.multipath = multipath """ An optional parameter only applicable to Unix/Linux 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. def _append_app_name_and_version(self, *base: str) -> str: params = list(base[1:]) if self.appname: params.append(self.appname) if self.version: params.append(self.version) return os.path.join(base[0], *params) @property @abstractmethod def user_data_dir(self) -> str: """:return: data directory tied to the user""" @property @abstractmethod def site_data_dir(self) -> str: """:return: data directory shared by users""" @property @abstractmethod def user_config_dir(self) -> str: """:return: config directory tied to the user""" @property @abstractmethod def site_config_dir(self) -> str: """:return: config directory shared by the users""" @property @abstractmethod def user_cache_dir(self) -> str: """:return: cache directory tied to the user""" @property @abstractmethod def user_state_dir(self) -> str: """:return: state directory tied to the user""" @property @abstractmethod def user_log_dir(self) -> str: """:return: log directory tied to the user""" @property @abstractmethod def user_documents_dir(self) -> str: """:return: documents directory tied to the user""" @property @abstractmethod def user_runtime_dir(self) -> str: """:return: runtime directory tied to the user""" @property def user_data_path(self) -> Path: """:return: data path tied to the user""" return Path(self.user_data_dir) @property def site_data_path(self) -> Path: """:return: data path shared by users""" return Path(self.site_data_dir) @property def user_config_path(self) -> Path: """:return: config path tied to the user""" return Path(self.user_config_dir) @property def site_config_path(self) -> Path: """:return: config path shared by the users""" return Path(self.site_config_dir) @property def user_cache_path(self) -> Path: """:return: cache path tied to the user""" return Path(self.user_cache_dir) @property def user_state_path(self) -> Path: """:return: state path tied to the user""" return Path(self.user_state_dir) @property def user_log_path(self) -> Path: """:return: log path tied to the user""" return Path(self.user_log_dir) @property def user_documents_path(self) -> Path: """:return: documents path tied to the user""" return Path(self.user_documents_dir) @property def user_runtime_path(self) -> Path: """:return: runtime path tied to the user""" return Path(self.user_runtime_dir) PK!M]V22 __init__.pynu[""" Utilities for determining application-specific dirs. See for details and usage. """ from __future__ import annotations import os import sys from pathlib import Path from typing import TYPE_CHECKING if TYPE_CHECKING: from pip._vendor.typing_extensions import Literal # pragma: no cover from .api import PlatformDirsABC from .version import __version__, __version_info__ def _set_platform_dir_class() -> type[PlatformDirsABC]: if sys.platform == "win32": from pip._vendor.platformdirs.windows import Windows as Result elif sys.platform == "darwin": from pip._vendor.platformdirs.macos import MacOS as Result else: from pip._vendor.platformdirs.unix import Unix as Result if os.getenv("ANDROID_DATA") == "/data" and os.getenv("ANDROID_ROOT") == "/system": if os.getenv("SHELL") is not None: return Result from pip._vendor.platformdirs.android import _android_folder if _android_folder() is not None: from pip._vendor.platformdirs.android import Android return Android # return to avoid redefinition of result return Result PlatformDirs = _set_platform_dir_class() #: Currently active platform AppDirs = PlatformDirs #: Backwards compatibility with appdirs def user_data_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_data_dir def site_data_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: data directory shared by users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_data_dir def user_config_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_config_dir def site_config_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config directory shared by the users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_config_dir def user_cache_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_dir def user_state_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_state_dir def user_log_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_log_dir def user_documents_dir() -> str: """ :returns: documents directory tied to the user """ return PlatformDirs().user_documents_dir def user_runtime_dir( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> str: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime directory tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_runtime_dir def user_data_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_data_path def site_data_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `multipath `. :returns: data path shared by users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_data_path def user_config_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_config_path def site_config_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, multipath: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config path shared by the users """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, multipath=multipath).site_config_path def user_cache_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_cache_path def user_state_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, roaming=roaming).user_state_path def user_log_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_log_path def user_documents_path() -> Path: """ :returns: documents path tied to the user """ return PlatformDirs().user_documents_path def user_runtime_path( appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, opinion: bool = True, ) -> Path: """ :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime path tied to the user """ return PlatformDirs(appname=appname, appauthor=appauthor, version=version, opinion=opinion).user_runtime_path __all__ = [ "__version__", "__version_info__", "PlatformDirs", "AppDirs", "PlatformDirsABC", "user_data_dir", "user_config_dir", "user_cache_dir", "user_state_dir", "user_log_dir", "user_documents_dir", "user_runtime_dir", "site_data_dir", "site_config_dir", "user_data_path", "user_config_path", "user_cache_path", "user_state_path", "user_log_path", "user_documents_path", "user_runtime_path", "site_data_path", "site_config_path", ] PK!?&$__pycache__/__main__.cpython-313.pycnu[ 2biNSrSSKJr SSKJrJr SrSSjr\S:Xa\"5 gg) zMain entry point.) annotations) PlatformDirs __version__) user_data_diruser_config_diruser_cache_diruser_state_dir user_log_diruser_documents_diruser_downloads_diruser_pictures_diruser_videos_diruser_music_diruser_runtime_dir site_data_dirsite_config_dirsite_cache_dirc SnSn[S[S35 [S5 [XSS9n[Hn[US[ X#535 M [S 5 [X5n[Hn[US[ X#535 M [S 5 [U5n[Hn[US[ X#535 M [S 5 [US S 9n[Hn[US[ X#535 M g)zRun main entry point.MyApp MyCompanyz-- platformdirs z --z%-- app dirs (with optional 'version')z1.0)versionz: z) -- app dirs (without optional 'version')z+ -- app dirs (without optional 'appauthor')z( -- app dirs (with disabled 'appauthor')F) appauthorN)printrrPROPSgetattr)app_name app_authordirsprops ړ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/__main__.pymainr!sHJ [M -. 12 e r+s."> $08 zFr"PK!*DD$__pycache__/__init__.cpython-313.pycnu[ 2biNlSrSSKJr SSKrSSKrSSKJr SSKJr SSK J r SSK J r \(a#SS K Jr \RS :aSS KJr OSS KJr S*S jr\"5r\rS+S,S jjrS+S-SjjrS+S,SjjrS+S-SjjrS.S/SjjrS.S/SjjrS+S,SjjrS.S/SjjrS0SjrS0SjrS0SjrS0Sjr S0Sjr!S.S/Sjjr"S+S1Sjjr#S+S2Sjjr$S+S1Sjjr%S+S2Sjjr&S.S3Sjjr'S.S3S jjr(S+S1S!jjr)S.S3S"jjr*S4S#jr+S4S$jr,S4S%jr-S4S&jr.S4S'jr/S.S3S(jjr0/S)Qr1g)5z Utilities for determining application-specific dirs. See for details and usage. ) annotationsN) TYPE_CHECKING)PlatformDirsABC) __version__)__version_tuple__)Path))Literalc[RS:XaSSKJn O![RS:XaSSKJn OSSKJn [R"S5S:Xah[R"S 5S :XaN[R"S 5(d[R"S 5(aU$SS K J n U"5bSSK J n U$U$)Nwin32r)Windowsdarwin)MacOS)Unix ANDROID_DATAz/data ANDROID_ROOTz/systemSHELLPREFIX)_android_folder)Android) sysplatform pip._vendor.platformdirs.windowsrpip._vendor.platformdirs.macosrpip._vendor.platformdirs.unixrosgetenv pip._vendor.platformdirs.androidrr)Resultrrs ړ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/__init__.py_set_platform_dir_classr#s ||wF  !B@ yy G+ .0IY0V 99W  8!4!4MD   ( @N Mc0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: data directory tied to the user appname appauthorversionroaming ensure_exists) PlatformDirs user_data_dirr&s r"r-r-2' #   m r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: data directory shared by users r'r(r) multipathr+)r, site_data_dirr0s r"r2r2Js' #   m r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config directory tied to the user r&)r,user_config_dirr&s r"r4r4b' #   o r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config directory shared by the users r0)r,site_config_dirr0s r"r7r7zs' #   o r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: cache directory tied to the user r'r(r)opinionr+)r,user_cache_dirr9s r"r;r;' #   n r$c0[UUUUUS9R$a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: cache directory tied to the user r9)r,site_cache_dirr9s r"r?r?r<r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: state directory tied to the user r&)r,user_state_dirr&s r"rArAr<r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: log directory tied to the user r9)r, user_log_dirr9s r"rCrCs' #   l r$c*[5R$)z.:returns: documents directory tied to the user)r,user_documents_dirr$r"rErE > , ,,r$c*[5R$)z.:returns: downloads directory tied to the user)r,user_downloads_dirrFr$r"rIrIrGr$c*[5R$)z-:returns: pictures directory tied to the user)r,user_pictures_dirrFr$r"rKrKs > + ++r$c*[5R$)z+:returns: videos directory tied to the user)r,user_videos_dirrFr$r"rMrM > ) ))r$c*[5R$)z*:returns: music directory tied to the user)r,user_music_dirrFr$r"rPrPs > ( ((r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: runtime directory tied to the user r9)r,user_runtime_dirr9s r"rRrR ( #    r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: data path tied to the user r&)r,user_data_pathr&s r"rUrU#r<r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `multipath `. :param ensure_exists: See `ensure_exists `. :returns: data path shared by users r0)r,site_data_pathr0s r"rWrW;s' #   n r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config path tied to the user r&)r,user_config_pathr&s r"rYrYSrSr$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: config path shared by the users r0)r,site_config_pathr0s r"r[r[ks( #    r$c0[UUUUUS9R$r>)r,site_cache_pathr9s r"r]r]r5r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: cache path tied to the user r9)r,user_cache_pathr9s r"r_r_r5r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: state path tied to the user r&)r,user_state_pathr&s r"rarar5r$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :param ensure_exists: See `ensure_exists `. :returns: log path tied to the user r9)r, user_log_pathr9s r"rcrcr.r$c*[5R$)z):returns: documents path tied to the user)r,user_documents_pathrFr$r"rere > - --r$c*[5R$)z):returns: downloads path tied to the user)r,user_downloads_pathrFr$r"rhrhrfr$c*[5R$)z(:returns: pictures path tied to the user)r,user_pictures_pathrFr$r"rjrjrGr$c*[5R$)z&:returns: videos path tied to the user)r,user_videos_pathrFr$r"rlrls > * **r$c*[5R$)z%:returns: music path tied to the user)r,user_music_pathrFr$r"rnrnrNr$c0[UUUUUS9R$)a :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :param ensure_exists: See `ensure_exists `. :returns: runtime path tied to the user r9)r,user_runtime_pathr9s r"rprps( #    r$)!r__version_info__r,AppDirsrr-r4r;rArCrErIrKrMrPrRr2r7r?rUrYr_rarcrerhrjrlrnrprWr[r])returnztype[PlatformDirsABC])NNNFF) r' str | Noner(str | None | Literal[False]r)rtr*boolr+rvrsstr) r'rtr(rur)rtr1rvr+rvrsrw)NNNTF) r'rtr(rur)rtr:rvr+rvrsrw)rsrw) r'rtr(rur)rtr*rvr+rvrsr ) r'rtr(rur)rtr1rvr+rvrsr ) r'rtr(rur)rtr:rvr+rvrsr )rsr )2__doc__ __future__rrrtypingrapirr)rrrqpathlibr version_infor pip._vendor.typing_extensionsr#r,rrr-r2r4r7r;r?rArCrErIrKrMrPrRrUrWrYr[r]r_rarcrerhrjrlrnrp__all__rFr$r"rs# : 6!"9,'( -1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     0- - , * ) -1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     2-1  *     0. . - + * -1  *     0" r$PK!,%,%#__pycache__/android.cpython-313.pycnu[ 2bi+SrSSKJr SSKrSSKrSSKrSSKJr SSKJ r SSK J r "SS \ 5r \"SS 9SS j5r \"SS 9SS j5r\"SS 9SS j5r\"SS 9SSj5r\"SS 9SSj5r\"SS 9SSj5rS /rg)zAndroid.) annotationsN) lru_cache)cast)PlatformDirsABCc0\rSrSrSr\SSj5r\SSj5r\SSj5r\SSj5r \SSj5r \SSj5r \SS j5r \SS j5r \SS j5r\SS j5r\SS j5r\SSj5r\SSj5r\SSj5rSrg)Android a Follows the guidance `from here `_. Makes use of the `appname `, `version `, `ensure_exists `. cRUR[[[55S5$)zd:return: data directory tied to the user, e.g. ``/data/user///files/``files_append_app_name_and_versionrstr_android_folderselfs ڒ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/android.py user_data_dirAndroid.user_data_dir!00c?;L1MwWWcUR$)z@:return: data directory shared by users, same as `user_data_dir`rrs r site_data_dirAndroid.site_data_dir!!!rcRUR[[[55S5$)zw :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` shared_prefsr rs ruser_config_dirAndroid.user_config_dirs! 00c?;L1M~^^rcUR$)zH:return: config directory shared by the users, same as `user_config_dir`)rrs rsite_config_dirAndroid.site_config_dir's###rcRUR[[[55S5$)zj:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``cacher rs ruser_cache_dirAndroid.user_cache_dir,rrcUR$)zB:return: cache directory shared by users, same as `user_cache_dir`)r&rs rsite_cache_dirAndroid.site_cache_dir1s"""rcUR$)zB:return: state directory tied to the user, same as `user_data_dir`rrs ruser_state_dirAndroid.user_state_dir6rrcURnUR(a [RR US5nU$)z :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user///cache//log`` logr&opinionospathjoinrr3s r user_log_dirAndroid.user_log_dir;/ "" <<77<<e,D rc[5$)zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)_android_documents_folderrs ruser_documents_dirAndroid.user_documents_dirF )**rc[5$)zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)_android_downloads_folderrs ruser_downloads_dirAndroid.user_downloads_dirKr=rc[5$)zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)_android_pictures_folderrs ruser_pictures_dirAndroid.user_pictures_dirPs ())rc[5$)zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)_android_videos_folderrs ruser_videos_dirAndroid.user_videos_dirUs &''rc[5$)zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)_android_music_folderrs ruser_music_dirAndroid.user_music_dirZs %&&rcURnUR(a [RR US5nU$)z :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user///cache//tmp`` tmpr0r5s ruser_runtime_dirAndroid.user_runtime_dir_r8rNreturnr)__name__ __module__ __qualname____firstlineno____doc__propertyrrrr"r&r)r,r6r;r@rDrHrLrP__static_attributes__rRrrr r s%XX""__$$XX##""++++**((''rr )maxsizecXSSKJn U"S5nUR5R5R 5nU$![ aa [ R"S5n[RH1nURU5(dMURS5Sn U$ SnU$f=f)zE:return: base folder for the Android OS or None if it cannot be foundr autoclassandroid.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesN) jniusr_ getFilesDir getParentFilegetAbsolutePath Exceptionrecompilesysr3matchsplit)r_contextresultpatternr3s rrrks#56$002@@BRRT M **@AHHD}}T""H-a0 M  F Ms:>AB) B)!B)(B)cSSKJn U"S5nU"S5nURUR5R 5nU$![ a SnU$f=f)z,:return: documents folder for the Android OSrr^r`android.os.Environmentz/storage/emulated/0/Documents)rar_getExternalFilesDirDIRECTORY_DOCUMENTSrdre)r_rk environment documents_dirs rr:r:c8#56 89 $889X9XYiik   87 8?A AAcSSKJn U"S5nU"S5nURUR5R 5nU$![ a SnU$f=f)z,:return: downloads folder for the Android OSrr^r`roz/storage/emulated/0/Downloads)rar_rpDIRECTORY_DOWNLOADSrdre)r_rkrr downloads_dirs rr?r?rtrucSSKJn U"S5nU"S5nURUR5R 5nU$![ a SnU$f=f)z+:return: pictures folder for the Android OSrr^r`roz/storage/emulated/0/Pictures)rar_rpDIRECTORY_PICTURESrdre)r_rkrr pictures_dirs rrCrCsc6#56 89 #77 8V8VWggi   65 6rucSSKJn U"S5nU"S5nURUR5R 5nU$![ a SnU$f=f)z):return: videos folder for the Android OSrr^r`roz/storage/emulated/0/DCIM/Camera)rar_rpDIRECTORY_DCIMrdre)r_rkrr videos_dirs rrGrGsc7#56 89 !55k6P6PQaac   76 7rucSSKJn U"S5nU"S5nURUR5R 5nU$![ a SnU$f=f)z(:return: music folder for the Android OSrr^r`roz/storage/emulated/0/Music)rar_rpDIRECTORY_MUSICrdre)r_rkrr music_dirs rrKrKsc0#56 89  44[5P5PQaac   0/ 0ru)rTz str | NonerS)rY __future__rr2rfrh functoolsrtypingrapirr rr:r?rCrGrK__all__rRrrrs"  [o[| 1( 1   1   1   1   1    rPK!Z$gg#__pycache__/version.cpython-313.pycnu[ 2biS=rrS=rrg)z3.8.1)N) __version__version__version_tuple__ version_tupleڒ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/version.pyr s  g$--Mr PK!E M3M3#__pycache__/windows.cpython-313.pycnu[ 2bie%SrSSKJr SSKrSSKrSSKrSSKJr SSKJ r SSK J r \ (aSSK J r "S S \ 5rSS jrSS jrSS jrSSjrSSjr\"SS9"\"55rS /rg)zWindows.) annotationsN) lru_cache) TYPE_CHECKING)PlatformDirsABC)CallablecB\rSrSrSr\SSj5rSS.SSjjr\SSj5r\SSj5r \SS j5r \SS j5r \SS j5r \SS j5r \SS j5r\SSj5r\SSj5r\SSj5r\SSj5r\SSj5r\SSj5rSrg)Windowsa `MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `, `ensure_exists `. cUR(aSOSn[RR[ U55nUR U5$)z :return: data directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname`` (not roaming) or ``%USERPROFILE%\AppData\Roaming\$appauthor\$appname`` (roaming) CSIDL_APPDATACSIDL_LOCAL_APPDATA)roamingospathnormpathget_win_folder _append_parts)selfconstrs ڒ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/windows.py user_data_dirWindows.user_data_dirs<$(<<5Jwwu 56!!$''N opinion_valuec/nUR(aURSLa0UR=(d URnURU5 URUR5 Ub"UR(aURU5 UR(aURUR5 [ R R"U/UQ76nURU5 U$)NF) appname appauthorappendopinionversionrrjoin_optionally_create_directory)rrrparamsauthors rrWindows._append_parts(s <<~~U*74<< f% MM$,, '(T\\ m,|| dll+ww||D*6* ))$/ rct[RR[S55nUR U5$)zT:return: data directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname``CSIDL_COMMON_APPDATArrrrrrrs r site_data_dirWindows.site_data_dir7s/ww/E FG!!$''rcUR$)zC:return: config directory tied to the user, same as `user_data_dir`rrs ruser_config_dirWindows.user_config_dir=!!!rcUR$)zF:return: config directory shared by the users, same as `site_data_dir`)r,r0s rsite_config_dirWindows.site_config_dirBr3rcr[RR[S55nUR USS9$)z :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname\Cache\$version`` rCacherr*r+s ruser_cache_dirWindows.user_cache_dirGs4 ww/D EF!!$g!>>rcr[RR[S55nUR USS9$)zd:return: cache directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname\Cache\$version``r)r8rr*r+s rsite_cache_dirWindows.site_cache_dirPs4ww/E FG!!$g!>>rcUR$)zB:return: state directory tied to the user, same as `user_data_dir`r/r0s ruser_state_dirWindows.user_state_dirVr3rcURnUR(a1[RR US5nUR U5 U$)zg:return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in itLogs)rr!rrr#r$r+s r user_log_dirWindows.user_log_dir[s=!! <<77<<f-D  - -d 3 rcR[RR[S55$)zN:return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents``CSIDL_PERSONALrrrrr0s ruser_documents_dirWindows.user_documents_dirdsww/? @AArcR[RR[S55$)zN:return: downloads directory tied to the user e.g. ``%USERPROFILE%\Downloads``CSIDL_DOWNLOADSrGr0s ruser_downloads_dirWindows.user_downloads_dirisww/@ ABBrcR[RR[S55$)zL:return: pictures directory tied to the user e.g. ``%USERPROFILE%\Pictures``CSIDL_MYPICTURESrGr0s ruser_pictures_dirWindows.user_pictures_dirnsww/A BCCrcR[RR[S55$)zH:return: videos directory tied to the user e.g. ``%USERPROFILE%\Videos`` CSIDL_MYVIDEOrGr0s ruser_videos_dirWindows.user_videos_dirsww ?@@rcR[RR[S55$)zF:return: music directory tied to the user e.g. ``%USERPROFILE%\Music`` CSIDL_MYMUSICrGr0s ruser_music_dirWindows.user_music_dirxrVrc[RR[RR[ S5S55nUR U5$)zm :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname`` rTemp)rrrr#rrr+s ruser_runtime_dirWindows.user_runtime_dir}s? ww ^LI y>rc SSSSSSSSS .RU5nUcS U3n[U5e[R"S 5n[ [S 5nUR R S US SU5 [SU55(aD[R"S 5nURRURUS 5(aUnUS:Xa*[RRURS5$UR$)zGet folder with ctypes.#' ()r r)rrFrOrSrXrKNrniwindllrc3># UHn[U5S:v M g7f)N)ord).0cs r ,get_win_folder_via_ctypes..s %A3q6C<srKr{)rprqctypescreate_unicode_buffergetattrshell32SHGetFolderPathWanykernel32GetShortPathNameWvaluerrr#)rs csidl_constrvbufrbuf2s rget_win_folder_via_ctypesrs "!  c*o$ZL1o  & &t ,C VX &F NN##D+tQD % %%%++D1 ?? , ,SYYd C CC&&ww||CII{33 99rcz[[S5(a[$SSKn[$![ a [ s$f=f)Nrr)hasattrrrrr ImportErrorrw)rs r_pick_get_win_folderrs<vx  ((,,+ ,++,s '::)maxsize)rsrar`ra)rsrar`rb)r`zCallable[[str], str])rg __future__rrrr functoolsrtypingrapircollections.abcrr rwrorrrr__all__r_rrrsm"  (t(ot(n*&:!H,4()=)?@ rPK!IEMg00 __pycache__/unix.cpython-313.pycnu[ 2bii"SrSSKJr SSKrSSKrSSKJr SSKJr SSK J r \RS:XaSS jr OSS KJ r "S S \ 5r SS jrSSjrS /rg)zUnix.) annotationsN) ConfigParser)Path)PlatformDirsABCwin32cSn[U5e)Nzshould only be used on Unix) RuntimeError)msgs ڏ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/unix.pygetuidr s+3)r c\rSrSrSr\SSj5r\SSj5rSSjr\SSj5r \SSj5r \SSj5r \SS j5r \SS j5r \SS j5r\SS j5r\SS j5r\SSj5r\SSj5r\SSj5r\SSj5r\SSj5r\SSj5r\SSj5rSSjrSrg)Unixab On Unix/Linux, we follow the `XDG Basedir Spec `_. The spec allows overriding directories with environment variables. The examples show are the default values, alongside the name of the environment variable that overrides them. Makes use of the `appname `, `version `, `multipath `, `opinion `, `ensure_exists `. c[RRSS5nUR5(d[RR S5nUR U5$)z~ :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version`` XDG_DATA_HOMEz~/.local/shareosenvirongetstrippath expanduser_append_app_name_and_versionselfrs r user_data_dirUnix.user_data_dir"sI zz~~or2zz||77%%&67D0066rc[RRSS5nUR5(dS[RS3nUR U5$)a9 :return: data directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` XDG_DATA_DIRSrz/usr/local/sharez /usr/share)rrrrpathsep_with_multi_pathrs r site_data_dirUnix.site_data_dir-sFzz~~or2zz||%bjj\` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/etc/xdg/$appname/$version`` XDG_CONFIG_DIRSrz/etc/xdg)rrrrr$rs r site_config_dirUnix.site_config_dirLs:zz~~/4zz||D$$T**rc[RRSS5nUR5(d[RR S5nUR U5$)z| :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``~/$XDG_CACHE_HOME/$appname/$version`` XDG_CACHE_HOMErz~/.cacherrs r user_cache_dirUnix.user_cache_dirYsI zz~~.3zz||77%%j1D0066rc$URS5$)zM:return: cache directory shared by users, e.g. ``/var/tmp/$appname/$version``z/var/tmp)rrs r site_cache_dirUnix.site_cache_dirds00<>rcb[RRSS5nUR5(dj[R R S5(a9S[53n[U5R5(d S[53nO S[53nURU5$)aJ :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version``. For FreeBSD/OpenBSD/NetBSD, it would return ``/var/run/user/$(id -u)/$appname/$version`` if exists, otherwise ``/tmp/runtime-$(id -u)/$appname/$version``, if``$XDG_RUNTIME_DIR`` is not set. XDG_RUNTIME_DIRr)freebsdopenbsdnetbsdz/var/run/user/z /tmp/runtime-z /run/user/) rrrrsysplatform startswithr rexistsrrs r user_runtime_dirUnix.user_runtime_dirszz~~/4zz||||&&'GHH'z2Dz((***68*5D#FH:.0066rc8URUR5$)zd:return: data path shared by users. Only return first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathr%r;s r site_data_pathUnix.site_data_paths44T5G5GHHrc8URUR5$)zj:return: config path shared by the users. Only return first item, even if ``multipath`` is set to ``True``)rir4r;s r site_config_pathUnix.site_config_paths44T5I5IJJrc8URUR5$)ze:return: cache path shared by users. Only return first item, even if ``multipath`` is set to ``True``)rir<r;s r site_cache_pathUnix.site_cache_paths44T5H5HIIrc~UR(a"UR[R5Sn[ U5$)Nr)r)r(rr#r)r directorys r ri%Unix._first_item_as_path_if_multipaths* >>! 3A6IIrN)returnstr)rrwrvrw)rvr)rsrwrvr)__name__ __module__ __qualname____firstlineno____doc__propertyrr%r$r0r4r8r<r@rErKrOrSrWr[rfrjrmrpri__static_attributes__rurr rrss 77 + +*77 + +77==77GGFFEEAA??77&IIKKJJrrc[U5nUcT[RRUS5R 5nU(d[R R U5nU$)Nr)_get_user_dirs_folderrrrrrr)env_varfallback_tilde_path media_dirs r rJrJsM%g.IJJNN7B/557 **+>?I rc[[5R5S- nUR5(a[ 5nUR 5nUR SUR535 SSS5 XS;agUSURS5nURS[RRS55$g!,(df  N^=f)zkReturn directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/.zuser-dirs.dirsz[top] Ntop"z$HOME~) rrr0reropen read_stringreadrreplacerrr)keyuser_dirs_config_pathparserstreamrs r rrs !7!78;KK##%% " ' ' )V   8 9* Um #e}S!'',||GRWW%7%7%<== * )s #C  C)rvint)rrwrrwrvrw)rrwrvz str | None)r| __future__rrrb configparserrpathlibrapirrcr rrJr__all__rurr rsU " % <<7 g?gT*  rPK!.ss!__pycache__/macos.cpython-313.pycnu[ 2bi^DSrSSKJr SSKrSSKJr "SS\5rS/rg)zmacOS.) annotationsN)PlatformDirsABCc0\rSrSrSr\SSj5r\SSj5r\SSj5r\SSj5r \SSj5r \SSj5r \SS j5r \SS j5r \SS j5r\SS j5r\SS j5r\SSj5r\SSj5r\SSj5rSrg)MacOS a Platform directories for the macOS operating system. Follows the guidance from `Apple documentation `_. Makes use of the `appname `, `version `, `ensure_exists `. c^UR[RRS55$)zb:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``z~/Library/Application Support_append_app_name_and_versionospath expanduserselfs ڐ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/macos.py user_data_dirMacOS.user_data_dirs%001C1CDc1deec$URS5$)z`:return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``z/Library/Application Supportr rs r site_data_dirMacOS.site_data_dirs001OPPrcUR$)zC:return: config directory tied to the user, same as `user_data_dir`rrs ruser_config_dirMacOS.user_config_dir!!!rcUR$)zF:return: config directory shared by the users, same as `site_data_dir`)rrs rsite_config_dirMacOS.site_config_dir!rrc^UR[RRS55$)zV:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``z~/Library/Cachesr rs ruser_cache_dirMacOS.user_cache_dir&s%001C1CDV1WXXrc$URS5$)zT:return: cache directory shared by users, e.g. ``/Library/Caches/$appname/$version``z/Library/Cachesrrs rsite_cache_dirMacOS.site_cache_dir+s001BCCrcUR$)zB:return: state directory tied to the user, same as `user_data_dir`rrs ruser_state_dirMacOS.user_state_dir0rrc^UR[RRS55$)zR:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``z~/Library/Logsr rs r user_log_dirMacOS.user_log_dir5s%001C1CDT1UVVrc@[RRS5$)zC:return: documents directory tied to the user, e.g. ``~/Documents``z ~/Documentsr r rrs ruser_documents_dirMacOS.user_documents_dir:ww!!-00rc@[RRS5$)zC:return: downloads directory tied to the user, e.g. ``~/Downloads``z ~/Downloadsr.rs ruser_downloads_dirMacOS.user_downloads_dir?r1rc@[RRS5$)zA:return: pictures directory tied to the user, e.g. ``~/Pictures``z ~/Picturesr.rs ruser_pictures_dirMacOS.user_pictures_dirDsww!!,//rc@[RRS5$)z=:return: videos directory tied to the user, e.g. ``~/Movies``z~/Moviesr.rs ruser_videos_dirMacOS.user_videos_dirIsww!!*--rc@[RRS5$)z;:return: music directory tied to the user, e.g. ``~/Music``z~/Musicr.rs ruser_music_dirMacOS.user_music_dirNsww!!),,rc^UR[RRS55$)zg:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``z~/Library/Caches/TemporaryItemsr rs ruser_runtime_dirMacOS.user_runtime_dirSs%001C1CDe1fggrN)returnstr)__name__ __module__ __qualname____firstlineno____doc__propertyrrrrr"r%r(r+r/r3r6r9r<r?__static_attributes__rArrrr s+ffQQ""""YYDD""WW111100..--hhrr) rH __future__ros.pathr apirr__all__rArrrOs. " MhOMhb  rPK!~yT&T&__pycache__/api.cpython-313.pycnu[ 2biSrSSKJr SSKrSSKJrJr SSKJr SSK J r \ (a!SSK r \ RS:aSSK J r OSSKJ r "S S \5rg) z Base API.) annotationsN)ABCabstractmethod)Path) TYPE_CHECKING))Literalc"\rSrSrSrS$S%SjjrS&SjrS'Sjr\\ S(Sj55r \\ S(Sj55r \\ S(S j55r \\ S(S j55r \\ S(S j55r\\ S(S j55r\\ S(S j55r\\ S(Sj55r\\ S(Sj55r\\ S(Sj55r\\ S(Sj55r\\ S(Sj55r\\ S(Sj55r\\ S(Sj55r\S)Sj5r\S)Sj5r\S)Sj5r\S)Sj5r\S)Sj5r\S)Sj5r\S)Sj5r\S)Sj5r\S)Sj5r \S)Sj5r!\S)Sj5r"\S)S j5r#\S)S!j5r$\S)S"j5r%S#r&g)*PlatformDirsABCz-Abstract base class for platform directories.Nc`XlX lX0lX@lXPlX`lXplg)a 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`. N)appname appauthorversionroaming multipathopinion ensure_exists)selfrrrrrrrs ڎ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/platformdirs/api.py__init__PlatformDirsABC.__init__sI* "     #  * c<[USS5nUR(aGURUR5 UR(aURUR5 [R R "US/UQ76nURU5 U$)Nr)listrappendrospathjoin_optionally_create_directory)rbaseparamsr s r_append_app_name_and_version,PlatformDirsABC._append_app_name_and_versionGsmd12h << MM$,, '|| dll+ww||DG-f- ))$/ rcZUR(a[U5RSSS9 gg)NT)parentsexist_ok)rrmkdir)rr s rr",PlatformDirsABC._optionally_create_directoryQs'    J  TD  9 rcg)z(:return: data directory tied to the userNrs r user_data_dirPlatformDirsABC.user_data_dirUrcg)z':return: data directory shared by usersNr-r.s r site_data_dirPlatformDirsABC.site_data_dirZr1rcg)z*:return: config directory tied to the userNr-r.s ruser_config_dirPlatformDirsABC.user_config_dir_r1rcg)z-:return: config directory shared by the usersNr-r.s rsite_config_dirPlatformDirsABC.site_config_dirdr1rcg)z):return: cache directory tied to the userNr-r.s ruser_cache_dirPlatformDirsABC.user_cache_dirir1rcg)z(:return: cache directory shared by usersNr-r.s rsite_cache_dirPlatformDirsABC.site_cache_dirnr1rcg)z):return: state directory tied to the userNr-r.s ruser_state_dirPlatformDirsABC.user_state_dirsr1rcg)z':return: log directory tied to the userNr-r.s r user_log_dirPlatformDirsABC.user_log_dirxr1rcg)z-:return: documents directory tied to the userNr-r.s ruser_documents_dir"PlatformDirsABC.user_documents_dir}r1rcg)z-:return: downloads directory tied to the userNr-r.s ruser_downloads_dir"PlatformDirsABC.user_downloads_dirr1rcg)z,:return: pictures directory tied to the userNr-r.s ruser_pictures_dir!PlatformDirsABC.user_pictures_dirr1rcg)z*:return: videos directory tied to the userNr-r.s ruser_videos_dirPlatformDirsABC.user_videos_dirr1rcg)z):return: music directory tied to the userNr-r.s ruser_music_dirPlatformDirsABC.user_music_dirr1rcg)z+:return: runtime directory tied to the userNr-r.s ruser_runtime_dir PlatformDirsABC.user_runtime_dirr1rc,[UR5$)z#:return: data path tied to the user)rr/r.s ruser_data_pathPlatformDirsABC.user_data_pathD&&''rc,[UR5$)z":return: data path shared by users)rr3r.s rsite_data_pathPlatformDirsABC.site_data_pathr\rc,[UR5$)z%:return: config path tied to the user)rr6r.s ruser_config_path PlatformDirsABC.user_config_pathD(())rc,[UR5$)z(:return: config path shared by the users)rr9r.s rsite_config_path PlatformDirsABC.site_config_pathrcrc,[UR5$)z$:return: cache path tied to the user)rr<r.s ruser_cache_pathPlatformDirsABC.user_cache_pathD''((rc,[UR5$)z#:return: cache path shared by users)rr?r.s rsite_cache_pathPlatformDirsABC.site_cache_pathrjrc,[UR5$)z$:return: state path tied to the user)rrBr.s ruser_state_pathPlatformDirsABC.user_state_pathrjrc,[UR5$)z":return: log path tied to the user)rrEr.s r user_log_pathPlatformDirsABC.user_log_pathsD%%&&rc,[UR5$)z(:return: documents path tied to the user)rrHr.s ruser_documents_path#PlatformDirsABC.user_documents_pathD++,,rc,[UR5$)z(:return: downloads path tied to the user)rrKr.s ruser_downloads_path#PlatformDirsABC.user_downloads_pathrwrc,[UR5$)z':return: pictures path tied to the user)rrNr.s ruser_pictures_path"PlatformDirsABC.user_pictures_pathsD**++rc,[UR5$)z%:return: videos path tied to the user)rrQr.s ruser_videos_path PlatformDirsABC.user_videos_pathrcrc,[UR5$)z$:return: music path tied to the user)rrTr.s ruser_music_pathPlatformDirsABC.user_music_pathrjrc,[UR5$)z&:return: runtime path tied to the user)rrWr.s ruser_runtime_path!PlatformDirsABC.user_runtime_pathsD))**r)rrrrrrr)NNNFFTF)r str | Nonerzstr | None | Literal[False]rrrboolrrrrrrreturnNone)r#strrr)r rrr)rr)rr)'__name__ __module__ __qualname____firstlineno____doc__rr%r"propertyrr/r3r6r9r<r?rBrErHrKrNrQrTrWrZr^rarerhrlrorrruryr|rrr__static_attributes__r-rrr r s7#15"#0 0 /0  0  0  0 0 0  0 d:776699<<88778866<<<<;;9988::((((****))))))''----,,**))++rr )r __future__rrabcrrpathlibrtypingrsys version_infor pip._vendor.typing_extensionsr r-rrrs?" #  6!"9M+cM+rPK!BLL"__pycache__/version.cpython-38.pycnu[U ʗReN@sdZdZdZdS)zVersion informationz2.5.2)rN)__doc__ __version____version_info__rr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/version.pysPK!h__pycache__/api.cpython-38.pycnu[U ʗRe.@sbddlmZddlZddlZddlmZmZddlmZej dkrNddl m Z GdddeZ dS) ) annotationsN)ABCabstractmethod)Path))Literalc@seZdZdZd5dddddddd d Zd d d d dZeed dddZeed dddZ eed dddZ eed dddZ eed dddZ eed dddZ eed dddZeed dddZeed dd d!Zed"dd#d$Zed"dd%d&Zed"dd'd(Zed"dd)d*Zed"dd+d,Zed"dd-d.Zed"dd/d0Zed"dd1d2Zed"dd3d4ZdS)6PlatformDirsABCz7 Abstract base class for platform directories. NFTz str | Nonezstr | None | Literal[False]boolappname appauthorversionroaming multipathopinioncCs(||_||_||_||_||_||_dS)a% 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`. Nr )selfr r rrrrr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/api.py__init__s zPlatformDirsABC.__init__str)basereturncGsJt|dd}|jr4||j|jr4||jtjj|df|S)Nr)listr appendrospathjoin)rrparamsrrr_append_app_name_and_version<s   z,PlatformDirsABC._append_app_name_and_version)rcCsdS)z(:return: data directory tied to the userNrrrrr user_data_dirDszPlatformDirsABC.user_data_dircCsdS)z':return: data directory shared by usersNrr!rrr site_data_dirIszPlatformDirsABC.site_data_dircCsdS)z*:return: config directory tied to the userNrr!rrruser_config_dirNszPlatformDirsABC.user_config_dircCsdS)z-:return: config directory shared by the usersNrr!rrrsite_config_dirSszPlatformDirsABC.site_config_dircCsdS)z):return: cache directory tied to the userNrr!rrruser_cache_dirXszPlatformDirsABC.user_cache_dircCsdS)z):return: state directory tied to the userNrr!rrruser_state_dir]szPlatformDirsABC.user_state_dircCsdS)z':return: log directory tied to the userNrr!rrr user_log_dirbszPlatformDirsABC.user_log_dircCsdS)z-:return: documents directory tied to the userNrr!rrruser_documents_dirgsz"PlatformDirsABC.user_documents_dircCsdS)z+:return: runtime directory tied to the userNrr!rrruser_runtime_dirlsz PlatformDirsABC.user_runtime_dirrcCs t|jS)z#:return: data path tied to the user)rr"r!rrruser_data_pathqszPlatformDirsABC.user_data_pathcCs t|jS)z":return: data path shared by users)rr#r!rrrsite_data_pathvszPlatformDirsABC.site_data_pathcCs t|jS)z%:return: config path tied to the user)rr$r!rrruser_config_path{sz PlatformDirsABC.user_config_pathcCs t|jS)z(:return: config path shared by the users)rr%r!rrrsite_config_pathsz PlatformDirsABC.site_config_pathcCs t|jS)z$:return: cache path tied to the user)rr&r!rrruser_cache_pathszPlatformDirsABC.user_cache_pathcCs t|jS)z$:return: state path tied to the user)rr'r!rrruser_state_pathszPlatformDirsABC.user_state_pathcCs t|jS)z":return: log path tied to the user)rr(r!rrr user_log_pathszPlatformDirsABC.user_log_pathcCs t|jS)z(:return: documents path tied to the user)rr)r!rrruser_documents_pathsz#PlatformDirsABC.user_documents_pathcCs t|jS)z&:return: runtime path tied to the user)rr*r!rrruser_runtime_pathsz!PlatformDirsABC.user_runtime_path)NNNFFT)__name__ __module__ __qualname____doc__rr propertyrr"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3rrrrr sl+r ) __future__rrsysabcrrpathlibr version_infotypingrr rrrrs    PK!r))#__pycache__/__init__.cpython-38.pycnu[U ʗRe2@sNdZddlmZddlZddlZddlmZddlmZerHddl m Z ddl m Z dd l mZmZd d d d ZeZeZdAddddddddZdBddddddddZdCddddddddZdDddddddddZdEdddddddd ZdFddddddd!d"ZdGddddddd#d$Zdd d%d&ZdHddddddd'd(ZdIddddd)dd*d+ZdJddddd)dd,d-ZdKddddd)dd.d/ZdLddddd)dd0d1ZdMddddd)dd2d3Z dNddddd)dd4d5Z!dOddddd)dd6d7Z"d)d d8d9Z#dPddddd)dd:d;Z$dd?d@ddd d"d$d&d(ddd+d/d3d5d7d9d;d-d1gZ%dS)Qz Utilities for determining application-specific dirs. See for details and usage. ) annotationsN)Path) TYPE_CHECKING)Literal)PlatformDirsABC) __version____version_info__ztype[PlatformDirsABC])returncCstjdkrddlm}n$tjdkr0ddlm}n ddlm}t ddkrt d d krt d dk rj|Sdd l m }|dk rdd l m }|S|S)Nwin32r)Windowsdarwin)MacOS)Unix ANDROID_DATAz/data ANDROID_ROOTz/systemSHELL)_android_folder)Android) sysplatform pip._vendor.platformdirs.windowsr pip._vendor.platformdirs.macosrpip._vendor.platformdirs.unixrosgetenv pip._vendor.platformdirs.androidrr)Resultrrr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/__init__.py_set_platform_dir_classs      r Fz str | Nonezstr | None | Literal[False]boolstr)appname appauthorversionroamingr cCst||||djS)aq :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data directory tied to the user r#r$r%r&) PlatformDirs user_data_dirr'rrrr).s r))r#r$r% multipathr cCst||||djS)at :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: data directory shared by users r#r$r%r*)r( site_data_dirr+rrrr,>s r,cCst||||djS)as :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config directory tied to the user r')r(user_config_dirr'rrrr-Ns r-cCst||||djS)az :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config directory shared by the users r+)r(site_config_dirr+rrrr.^s r.T)r#r$r%opinionr cCst||||djS)ar :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache directory tied to the user r#r$r%r/)r(user_cache_dirr0rrrr1ns r1cCst||||djS)ar :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state directory tied to the user r')r(user_state_dirr'rrrr2~s r2cCst||||djS)ap :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log directory tied to the user r0)r( user_log_dirr0rrrr3s r3cCstjS)z8 :returns: documents directory tied to the user )r(user_documents_dirrrrrr4sr4cCst||||djS)at :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime directory tied to the user r0)r(user_runtime_dirr0rrrr5s r5rcCst||||djS)al :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: data path tied to the user r')r(user_data_pathr'rrrr6s r6cCst||||djS)aq :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `multipath `. :returns: data path shared by users r+)r(site_data_pathr+rrrr7s r7cCst||||djS)an :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: config path tied to the user r')r(user_config_pathr'rrrr8s r8cCst||||djS)au :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param multipath: See `roaming `. :returns: config path shared by the users r+)r(site_config_pathr+rrrr9s r9cCst||||djS)am :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: cache path tied to the user r0)r(user_cache_pathr0rrrr:s r:cCst||||djS)am :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param roaming: See `roaming `. :returns: state path tied to the user r')r(user_state_pathr'rrrr;s r;cCst||||djS)ak :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `roaming `. :returns: log path tied to the user r0)r( user_log_pathr0rrrr<s r<cCstjS)z3 :returns: documents path tied to the user )r(user_documents_pathrrrrr=%sr=cCst||||djS)ao :param appname: See `appname `. :param appauthor: See `appauthor `. :param version: See `version `. :param opinion: See `opinion `. :returns: runtime path tied to the user r0)r(user_runtime_pathr0rrrr>,s r>rr r(AppDirsr)NNNF)NNNF)NNNF)NNNF)NNNT)NNNF)NNNT)NNNT)NNNF)NNNF)NNNF)NNNF)NNNT)NNNF)NNNT)NNNT)&__doc__ __future__rrrpathlibrtypingrZpip._vendor.typing_extensionsrapirr%rr r r(r?r)r,r-r.r1r2r3r4r5r6r7r8r9r:r;r<r=r>__all__rrrrs     PK!pp"__pycache__/android.cpython-38.pycnu[U ʗRe@sddlmZddlZddlZddlZddlmZddlmZddl m Z Gddde Z edd d d d d Z edd dd ddZ dgZdS)) annotationsN) lru_cache)cast)PlatformDirsABCc@seZdZdZeddddZeddddZedddd Zeddd d Zeddd d Z eddddZ eddddZ eddddZ eddddZ dS)Androidz Follows the guidance `from here `_. Makes use of the `appname ` and `version `. strreturncCs|tttdS)zd:return: data directory tied to the user, e.g. ``/data/user///files/``files_append_app_name_and_versionrr_android_folderselfr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/android.py user_data_dirszAndroid.user_data_dircCs|jS)z@:return: data directory shared by users, same as `user_data_dir`rrrrr site_data_dirszAndroid.site_data_dircCs|tttdS)z :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` Z shared_prefsr rrrruser_config_dirszAndroid.user_config_dircCs|jS)zH:return: config directory shared by the users, same as `user_config_dir`)rrrrrsite_config_dir$szAndroid.site_config_dircCs|tttdS)zj:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``cacher rrrruser_cache_dir)szAndroid.user_cache_dircCs|jS)zB:return: state directory tied to the user, same as `user_data_dir`rrrrruser_state_dir.szAndroid.user_state_dircCs|j}|jrtj|d}|S)z :return: log directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user///cache//log`` logropinionospathjoinrrrrr user_log_dir3szAndroid.user_log_dircCstS)zf :return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents`` )_android_documents_folderrrrruser_documents_dir>szAndroid.user_documents_dircCs|j}|jrtj|d}|S)z :return: runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user///cache//tmp`` tmprr!rrruser_runtime_dirEszAndroid.user_runtime_dirN)__name__ __module__ __qualname____doc__propertyrrrrrrr"r$r&rrrrr s& r)maxsizez str | Noner cCsxz(ddlm}|d}|}WnJtk rrtd}tj D] }| |rH| dd}qnqHd}YnX|S)zB:return: base folder for the Android OS or None if cannot be foundr autoclassandroid.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesN) jniusr.Z getFilesDirZ getParentFilegetAbsolutePath Exceptionrecompilesysrmatchsplit)r.ContextresultpatternrrrrrQs     rrcCsNz0ddlm}|d}|d}||j}Wntk rHd}YnX|S)z,:return: documents folder for the Android OSrr-r/zandroid.os.Environmentz/storage/emulated/0/Documents)r0r.ZgetExternalFilesDirZDIRECTORY_DOCUMENTSr1r2)r.r8 Environment documents_dirrrrr#fs  r#) __future__rrr3r5 functoolsrtypingrapirrrr#__all__rrrrs    EPK!#__pycache__/__main__.cpython-38.pycnu[U ʗRe@s@ddlmZddlmZmZdZddddZedkrs  PK!L@0]]"__pycache__/windows.cpython-38.pycnu[U ʗRe'@sddlmZddlZddlZddlmZddlmZddlm Z Gddde Z d d d d d Z d d d d dZ d d d ddZ ddddZeddeZdgZdS)) annotationsN) lru_cache)Callable)PlatformDirsABCc@seZdZdZeddddZdddddd d d Zeddd d ZeddddZeddddZ eddddZ eddddZ eddddZ eddddZ eddddZdS)Windowsa`MSDN on where to store app data files `_. Makes use of the `appname `, `appauthor `, `version `, `roaming `, `opinion `.strreturncCs(|jr dnd}tjt|}||S)z :return: data directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname`` (not roaming) or ``%USERPROFILE%\AppData\Roaming\$appauthor\$appname`` (roaming) CSIDL_APPDATACSIDL_LOCAL_APPDATA)roamingospathnormpathget_win_folder _append_parts)selfconstrr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/windows.py user_data_dirszWindows.user_data_dirN opinion_valuez str | None)rrr cCsrg}|jr`|jdk r*|jp|j}||||j|dk rN|jrN|||jr`||jtjj|f|S)NF)appname appauthorappendopinionversionrrjoin)rrrparamsauthorrrrr s      zWindows._append_partscCstjtd}||S)zT:return: data directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname``CSIDL_COMMON_APPDATArrrrrrrrrr site_data_dir-szWindows.site_data_dircCs|jS)zC:return: config directory tied to the user, same as `user_data_dir`rrrrruser_config_dir3szWindows.user_config_dircCs|jS)zF:return: config directory shared by the users, same as `site_data_dir`)r%r'rrrsite_config_dir8szWindows.site_config_dircCstjtd}|j|ddS)z :return: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname\Cache\$version`` r Cacherr#r$rrruser_cache_dir=szWindows.user_cache_dircCs|jS)zB:return: state directory tied to the user, same as `user_data_dir`r&r'rrruser_state_dirFszWindows.user_state_dircCs|j}|jrtj|d}|S)zy :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in it ZLogs)rrrrrr$rrr user_log_dirKszWindows.user_log_dircCstjtdS)z` :return: documents directory tied to the user e.g. ``%USERPROFILE%\Documents`` CSIDL_PERSONAL)rrrrr'rrruser_documents_dirUszWindows.user_documents_dircCs$tjtjtdd}||S)z :return: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname`` r ZTemp)rrrrrrr$rrruser_runtime_dir\szWindows.user_runtime_dir)__name__ __module__ __qualname____doc__propertyrrr%r(r)r+r,r-r/r0rrrrr s(    rr) csidl_namer cCsr|dkr$tjtjtjddSdddd|}|dkrLtd |tj|}|dkrntd ||S) z&Get folder from environment variables.r. USERPROFILEZ DocumentsAPPDATAZALLUSERSPROFILE LOCALAPPDATA)r r"r NUnknown CSIDL name: zUnset environment variable: )rrrrenvironget ValueError)r6Z env_var_nameresultrrrget_win_folder_from_env_varsfs r?cCsXddddd|}|dkr*td|ddl}||jd }|||\}}t|S) zGet folder from the registry. This is a fallback technique at best. I'm not sure if using the registry for this guarantees us the correct answer for all CSIDL_* names. ZAppDatazCommon AppDataz Local AppDataZPersonalr r"r r.Nr:rz@Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders)r<r=winregOpenKeyHKEY_CURRENT_USER QueryValueExr)r6Zshell_folder_namerAkey directory_rrrget_win_folder_from_registryxsrHcCsddddd|}|dkr*td|td}ttd }|jd|dd |td d |Drtd}|j |j |dr|}|j S) zGet folder with ctypes.#r@Nr:iwindllrcss|]}t|dkVqdS)N)ord).0crrr sz,get_win_folder_via_ctypes..) r<r=ctypesZcreate_unicode_buffergetattrZshell32ZSHGetFolderPathWanykernel32ZGetShortPathNameWvalue)r6Z csidl_constbufrMZbuf2rrrget_win_folder_via_ctypess"   rYzCallable[[str], str]r cCs<ttdrtSz ddl}Wntk r2tYSXtSdS)NrMr)hasattrrSrYrA ImportErrorr?rH)rArrr_pick_get_win_folders   r\)maxsize) __future__rrSr functoolsrtypingrapirrr?rHrYr\r__all__rrrrs    [ PK![__pycache__/unix.cpython-38.pycnu[U ʗRe@sddlmZddlZddlZddlmZddlmZddlm Z ej drZddlm Z nd d d d Z Gd dde Z dddddZdgZdS)) annotationsN) ConfigParser)Path)PlatformDirsABClinux)getuidintreturncCs tddS)Nzshould only be used on Linux) RuntimeErrorr r /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/unix.pyrsrc@seZdZdZeddddZeddddZdddd d Zeddd d Zeddd dZ eddddZ eddddZ eddddZ eddddZ eddddZeddddZeddddZddddd Zd!S)"UnixaD On Unix/Linux, we follow the `XDG Basedir Spec `_. The spec allows overriding directories with environment variables. The examples show are the default values, alongside the name of the environment variable that overrides them. Makes use of the `appname `, `version `, `multipath `, `opinion `. strr cCs,tjdd}|s"tjd}||S)z :return: data directory tied to the user, e.g. ``~/.local/share/$appname/$version`` or ``$XDG_DATA_HOME/$appname/$version`` XDG_DATA_HOMEz~/.local/shareosenvirongetstrippath expanduser_append_app_name_and_versionselfrr r r user_data_dirs zUnix.user_data_dircCs.tjdd}|s$dtjd}||S)aY :return: data directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/usr/local/share/$appname/$version`` or ``/usr/share/$appname/$version`` XDG_DATA_DIRSrz/usr/local/sharez /usr/share)rrrrpathsep_with_multi_pathrr r r site_data_dir)szUnix.site_data_dir)rr cs<|tj}js|dd}fdd|D}tj|S)Nrrcsg|]}tj|qSr )rrrr).0prr r :sz)Unix._with_multi_path..)splitrr multipathjoin)rr path_listr r$rr 6s   zUnix._with_multi_pathcCs,tjdd}|s"tjd}||S)z :return: config directory tied to the user, e.g. ``~/.config/$appname/$version`` or ``$XDG_CONFIG_HOME/$appname/$version`` XDG_CONFIG_HOMErz ~/.configrrr r ruser_config_dir=s zUnix.user_config_dircCs$tjdd}|sd}||S)a/ :return: config directories shared by users (if `multipath ` is enabled and ``XDG_DATA_DIR`` is set and a multi path the response is also a multi path separated by the OS path separator), e.g. ``/etc/xdg/$appname/$version`` XDG_CONFIG_DIRSrz/etc/xdg)rrrrr rr r rsite_config_dirHszUnix.site_config_dircCs,tjdd}|s"tjd}||S)z :return: cache directory tied to the user, e.g. ``~/.cache/$appname/$version`` or ``~/$XDG_CACHE_HOME/$appname/$version`` XDG_CACHE_HOMErz~/.cacherrr r ruser_cache_dirUs zUnix.user_cache_dircCs,tjdd}|s"tjd}||S)z :return: state directory tied to the user, e.g. ``~/.local/state/$appname/$version`` or ``$XDG_STATE_HOME/$appname/$version`` XDG_STATE_HOMErz~/.local/staterrr r ruser_state_dir`s zUnix.user_state_dircCs|j}|jrtj|d}|S)zx :return: log directory tied to the user, same as `user_data_dir` if not opinionated else ``log`` in it log)r/opinionrrr(rr r r user_log_dirkszUnix.user_log_dircCs6td}|dkr2tjdd}|s2tjd}|S)zU :return: documents directory tied to the user, e.g. ``~/Documents`` XDG_DOCUMENTS_DIRNrz ~/Documents)_get_user_dirs_folderrrrrrr)r documents_dirr r ruser_documents_dirus  zUnix.user_documents_dircCs,tjdd}|s"dt}||S)z :return: runtime directory tied to the user, e.g. ``/run/user/$(id -u)/$appname/$version`` or ``$XDG_RUNTIME_DIR/$appname/$version`` XDG_RUNTIME_DIRrz /run/user/)rrrrrrrr r ruser_runtime_dirs zUnix.user_runtime_dirrcCs ||jS)zd:return: data path shared by users. Only return first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathr!r$r r rsite_data_pathszUnix.site_data_pathcCs ||jS)zj:return: config path shared by the users. Only return first item, even if ``multipath`` is set to ``True``)r;r-r$r r rsite_config_pathszUnix.site_config_path) directoryr cCs|jr|tjd}t|S)Nr)r'r&rrr)rr>r r rr;sz%Unix._first_item_as_path_if_multipathN)__name__ __module__ __qualname____doc__propertyrr!r r+r-r/r1r4r8r:r<r=r;r r r rrs2          rrz str | None)keyr c Cstjtjd}tj|rt}t|}|d| W5QRX||dkr\dS|d| d}| dtj d}|SdS)zjReturn directory from user-dirs.dirs config file. See https://freedesktop.org/wiki/Software/xdg-user-dirs/zuser-dirs.dirsz[top] topN"z$HOME~) rrr(rr+existsropen read_stringreadrreplacer)rDuser_dirs_config_pathparserstreamrr r rr6s   r6) __future__rrsys configparserrpathlibrapirplatform startswithrrr6__all__r r r rs      PK!  __pycache__/macos.cpython-38.pycnu[U ʗRe_ @s:ddlmZddlZddlmZGdddeZdgZdS)) annotationsN)PlatformDirsABCc@seZdZdZeddddZeddddZedddd Zeddd d Zeddd d Z eddddZ eddddZ eddddZ eddddZ dS)MacOSa Platform directories for the macOS operating system. Follows the guidance from `Apple documentation `_. Makes use of the `appname ` and `version `. str)returncCs|tjdS)zb:return: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``z~/Library/Application Support/_append_app_name_and_versionospath expanduserselfr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/platformdirs/macos.py user_data_dirszMacOS.user_data_dircCs |dS)z`:return: data directory shared by users, e.g. ``/Library/Application Support/$appname/$version``z/Library/Application Supportr r rrr site_data_dirszMacOS.site_data_dircCs|tjdS)z\:return: config directory tied to the user, e.g. ``~/Library/Preferences/$appname/$version``z~/Library/Preferences/rr rrruser_config_dirszMacOS.user_config_dircCs |dS)zU:return: config directory shared by the users, e.g. ``/Library/Preferences/$appname``z/Library/Preferencesrr rrrsite_config_dirszMacOS.site_config_dircCs|tjdS)zV:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``z~/Library/Cachesrr rrruser_cache_dir$szMacOS.user_cache_dircCs|jS)zB:return: state directory tied to the user, same as `user_data_dir`)rr rrruser_state_dir)szMacOS.user_state_dircCs|tjdS)zR:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``z~/Library/Logsrr rrr user_log_dir.szMacOS.user_log_dircCs tjdS)zC:return: documents directory tied to the user, e.g. ``~/Documents``z ~/Documents)r r r r rrruser_documents_dir3szMacOS.user_documents_dircCs|tjdS)zg:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``z~/Library/Caches/TemporaryItemsrr rrruser_runtime_dir8szMacOS.user_runtime_dirN)__name__ __module__ __qualname____doc__propertyrrrrrrrrrrrrrrs&r) __future__rr apirr__all__rrrrs  7PK!K _ _ macos.pynu[PK! unix.pynu[PK!T33%__pycache__/api.cpython-312.pycnu[PK!))#Z__pycache__/android.cpython-312.pycnu[PK!qq#__pycache__/version.cpython-312.pycnu[PK!vq99 dž__pycache__/unix.cpython-312.pycnu[PK!nK5K5#__pycache__/windows.cpython-312.pycnu[PK!1$d8M8M$5__pycache__/__init__.cpython-312.pycnu[PK!qq$C__pycache__/__main__.cpython-312.pycnu[PK!LvY"Y"!K__pycache__/macos.cpython-312.pycnu[PK!kU 0n__main__.pynu[PK!R"s sandroid.pynu[PK!NN !version.pynu[PK!py.typednu[PK!jo'' windows.pynu[PK! Vp..Bapi.pynu[PK!M]V22 __init__.pynu[PK!?&$__pycache__/__main__.cpython-313.pycnu[PK!*DD$__pycache__/__init__.cpython-313.pycnu[PK!,%,%#90__pycache__/android.cpython-313.pycnu[PK!Z$gg#U__pycache__/version.cpython-313.pycnu[PK!E M3M3#rW__pycache__/windows.cpython-313.pycnu[PK!IEMg00 __pycache__/unix.cpython-313.pycnu[PK!.ss!I__pycache__/macos.cpython-313.pycnu[PK!~yT&T& __pycache__/api.cpython-313.pycnu[PK!BLL"__pycache__/version.cpython-38.pycnu[PK!hN__pycache__/api.cpython-38.pycnu[PK!r))#e__pycache__/__init__.cpython-38.pycnu[PK!pp":__pycache__/android.cpython-38.pycnu[PK!#lL__pycache__/__main__.cpython-38.pycnu[PK!L@0]]"Q__pycache__/windows.cpython-38.pycnu[PK![[k__pycache__/unix.cpython-38.pycnu[PK!  O__pycache__/macos.cpython-38.pycnu[PK!!