hyb
2025-12-31 6cdcd01f77e11b72c323603e27ebdb85b15223c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Ë
Añúh8#ãó0—dZddlmZddlZddlZddlZddlmZddlm    Z    m
Z
ddl m Z Gd„d    e «Z ed¬
«dd „«Zed¬
«dd „«Zed¬
«dd „«Zed¬
«dd„«Zed¬
«dd„«Zed¬
«dd„«Zd    gZy)zAndroid.é)Ú annotationsN)Ú    lru_cache)Ú TYPE_CHECKINGÚcasté)ÚPlatformDirsABCcó0—eZdZdZedd„«Zedd„«Zedd„«Zedd„«Zedd„«Z    edd„«Z
edd„«Z edd    „«Z edd
„«Z edd „«Zedd „«Zedd „«Zedd„«Zedd„«Zedd„«Zedd„«Zy)ÚAndroida"
    Follows the guidance `from here <https://android.stackexchange.com/a/216132>`_.
 
    Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `version
    <platformdirs.api.PlatformDirsABC.version>`, `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
 
    cóR—|jttt««d«S)zd:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``Úfiles©Ú_append_app_name_and_versionrÚstrÚ_android_folder©Úselfs úZH:\Change_password\venv_build\Lib\site-packages\setuptools/_vendor/platformdirs/android.pyÚ user_data_dirzAndroid.user_data_diró!€ð×0Ñ0´´c¼?Ó;LÓ1MÈwÓWÐWócó—|jS)z@:return: data directory shared by users, same as `user_data_dir`©rrs rÚ site_data_dirzAndroid.site_data_diró€ð×!Ñ!Ð!rcóR—|jttt««d«S)z‡
        :return: config directory tied to the user, e.g.         ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
        Ú shared_prefsr rs rÚuser_config_dirzAndroid.user_config_dir!s!€ð ×0Ñ0´´c¼?Ó;LÓ1MÈ~Ó^Ð^rcó—|jS)zH:return: config directory shared by the users, same as `user_config_dir`)rrs rÚsite_config_dirzAndroid.site_config_dir)s€ð×#Ñ#Ð#rcóR—|jttt««d«S)ze:return: cache directory tied to the user, e.g.,``/data/user/<userid>/<packagename>/cache/<AppName>``Úcacher rs rÚuser_cache_dirzAndroid.user_cache_dir.rrcó—|jS)zB:return: cache directory shared by users, same as `user_cache_dir`)r"rs rÚsite_cache_dirzAndroid.site_cache_dir3s€ð×"Ñ"Ð"rcó—|jS)zB:return: state directory tied to the user, same as `user_data_dir`rrs rÚuser_state_dirzAndroid.user_state_dir8rrcóv—|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/<userid>/<packagename>/cache/<AppName>/log``
        Úlog©r"ÚopinionÚosÚpathÚjoin©rr,s  rÚ user_log_dirzAndroid.user_log_dir=ó/€ð ×"Ñ"ˆØ <Š<Ü—7‘7—<‘<  eÓ,ˆD؈ rcó—t«S)zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)Ú_android_documents_folderrs rÚuser_documents_dirzAndroid.user_documents_dirHó €ô)Ó*Ð*rcó—t«S)zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)Ú_android_downloads_folderrs rÚuser_downloads_dirzAndroid.user_downloads_dirMr4rcó—t«S)zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)Ú_android_pictures_folderrs rÚuser_pictures_dirzAndroid.user_pictures_dirRs €ô(Ó)Ð)rcó—t«S)zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)Ú_android_videos_folderrs rÚuser_videos_dirzAndroid.user_videos_dirWs €ô&Ó'Ð'rcó—t«S)zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)Ú_android_music_folderrs rÚuser_music_dirzAndroid.user_music_dir\s €ô%Ó&Ð&rcó—y)zP:return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``z/storage/emulated/0/Desktop©rs rÚuser_desktop_dirzAndroid.user_desktop_diras€ð-rcóv—|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/<userid>/<packagename>/cache/<AppName>/tmp``
        Útmpr)r.s  rÚuser_runtime_dirzAndroid.user_runtime_dirfr0rcó—|jS)zF:return: runtime directory shared by users, same as `user_runtime_dir`)rFrs rÚsite_runtime_dirzAndroid.site_runtime_dirqs€ð×$Ñ$Ð$rN©Úreturnr)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Úpropertyrrrrr"r$r&r/r3r7r:r=r@rCrFrHrBrrr
r
sM„ñðòXóðXðò"óð"ðò_óð_ðò$óð$ðòXóðXðò#óð#ðò"óð"ðòóððò+óð+ðò+óð+ðò*óð*ðò(óð(ðò'óð'ðò-óð-ðòóððò%óñ%rr
)ÚmaxsizecóÄ—d}tsM    ddlm}td|j    ««}|j «j «j«}|€;    ddl    m
}|d«}|j «j «j«}|€Stjd«}tjD])}|j|«sŒ|j!d«d}nd}|€Ttjd«}tjD]*}|j|«sŒ|j!d«d}|Sd}|S#t$rd}YŒ÷wxYw#t$rd}YŒËwxYw)    zE:return: base folder for the Android OS or None if it cannot be foundNr)Ú    mActivityúandroid.content.Context©Ú    autoclassz /data/(data|user/\d+)/(.+)/filesz/filesz7/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files)rÚandroidrRrÚgetApplicationContextÚ getFilesDirÚ getParentFileÚgetAbsolutePathÚ    ExceptionÚjniusrUÚreÚcompileÚsysr,ÚmatchÚsplit)ÚresultrRÚcontextrUÚpatternr,s      rrrwsf€ð€Fõ ð    å )äÐ4°i×6UÑ6UÓ6WÓXˆGØ×(Ñ(Ó*×8Ñ8Ó:×JÑJÓLˆFð€~ð    õ (áР9Ó:ˆGØ×(Ñ(Ó*×8Ñ8Ó:×JÑJÓLˆFð€~ô—*‘*Ð@ÓAˆÜ—H‘Hò    ˆD؏}‰}˜TÕ"ØŸ™ HÓ-¨aÑ0Ùð    ð
ˆFØ €~ô—*‘*ÐWÓXˆÜ—H‘Hò    ˆD؏}‰}˜TÕ"ØŸ™ HÓ-¨aÑ0Øð €Mð     ð
ˆFØ €MøôAò    ØŠFð    ûôò    ØŠFð    ús$ŠA EÁ:EÅ EÅ EÅ EÅEc󪗠   ddlm}|d«}|d«}|j|j«j    «}|S#t
$rd}Y|SwxYw)z,:return: documents folder for the Android OSrrTrSúandroid.os.Environmentz/storage/emulated/0/Documents)r\rUÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrZr[)rUrcÚ environmentÚ documents_dirs    rr2r2§óc€ð8Ý#áÐ5Ó6ˆÙР8Ó9ˆ Ø$×8Ñ8¸×9XÑ9XÓY×iÑiÓkˆ ð Ðøô ò8Ø7‰ à Ðð8úó‚?AÁ AÁAc󪗠   ddlm}|d«}|d«}|j|j«j    «}|S#t
$rd}Y|SwxYw)z,:return: downloads folder for the Android OSrrTrSrfz/storage/emulated/0/Downloads)r\rUrgÚDIRECTORY_DOWNLOADSrZr[)rUrcriÚ downloads_dirs    rr6r6·rkrlc󪗠   ddlm}|d«}|d«}|j|j«j    «}|S#t
$rd}Y|SwxYw)z+:return: pictures folder for the Android OSrrTrSrfz/storage/emulated/0/Pictures)r\rUrgÚDIRECTORY_PICTURESrZr[)rUrcriÚ pictures_dirs    rr9r9Çsc€ð6Ý#áÐ5Ó6ˆÙР8Ó9ˆ Ø#×7Ñ7¸ ×8VÑ8VÓW×gÑgÓiˆ ð Ðøô ò6Ø5‰ à Ðð6úrlc󪗠   ddlm}|d«}|d«}|j|j«j    «}|S#t
$rd}Y|SwxYw)z):return: videos folder for the Android OSrrTrSrfz/storage/emulated/0/DCIM/Camera)r\rUrgÚDIRECTORY_DCIMrZr[)rUrcriÚ
videos_dirs    rr<r<×sc€ð7Ý#áÐ5Ó6ˆÙР8Ó9ˆ Ø!×5Ñ5°k×6PÑ6PÓQ×aÑaÓcˆ
ð Ðøô ò7Ø6‰
à Ðð7úrlc󪗠   ddlm}|d«}|d«}|j|j«j    «}|S#t
$rd}Y|SwxYw)z(:return: music folder for the Android OSrrTrSrfz/storage/emulated/0/Music)r\rUrgÚDIRECTORY_MUSICrZr[)rUrcriÚ    music_dirs    rr?r?çsc€ð0Ý#áÐ5Ó6ˆÙР8Ó9ˆ Ø ×4Ñ4°[×5PÑ5PÓQ×aÑaÓcˆ    ð Ðøô ò0Ø/‰    à Ðð0úrl)rJz
str | NonerI)rNÚ
__future__rr+r]r_Ú    functoolsrÚtypingrrÚapirr
rr2r6r9r<r?Ú__all__rBrrú<module>r~sÏðÙå"ã    Û    Û
Ýß&å ôf%ˆoôf%ñR 1Ôò,óð,ñ^ 1Ôò óð ñ 1Ôò óð ñ 1Ôò óð ñ 1Ôò óð ñ 1Ôò óð ð ð r