+
     h8#  c                  sJ   R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
 ^RIHt  ! R R]4      t]! ^R7      R	 R
 l4       t]! ^R7      R R l4       t]! ^R7      R R l4       t]! ^R7      R R l4       t]! ^R7      R R l4       t]! ^R7      R R l4       tR.tR# )zAndroid.)annotationsN)	lru_cache)TYPE_CHECKINGcast)PlatformDirsABCc                  sz   ] tR t^tRt]R R l4       t]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       tR"tR## )$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                   V ^8  d   QhRR/#    returnstr Zformat   "L/usr/lib/python3.14/site-packages/setuptools/_vendor/platformdirs/android.py__annotate__Android.__annotate__   s     X Xs X    c                R    V P                  \        \        \        4       4      R4      # )zd:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``ZfilesZ_append_app_name_and_versionr   r
   _android_folderself   &r   user_data_dirZAndroid.user_data_dir   !     00c?;L1MwWWr   c               r   r   r   r   r   r   r   r      s     " "s "r   c                    V P                   # )z@:return: data directory shared by users, same as `user_data_dir`r   r   r   r   site_data_dirZAndroid.site_data_dir        !!!r   c               r   r   r   r   r   r   r   r   "   s     _ _ _r   c                r   )zw
:return: config directory tied to the user, e.g.         ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
Zshared_prefsr   r   r   r   user_config_dirZAndroid.user_config_dir!   s!     00c?;L1M~^^r   c               r   r   r   r   r   r   r   r   *   s     $ $ $r   c                r   )zH:return: config directory shared by the users, same as `user_config_dir`)r   r   r   r   site_config_dirZAndroid.site_config_dir)   s     ###r   c               r   r   r   r   r   r   r   r   /   s     X X Xr   c                r   )ze:return: cache directory tied to the user, e.g.,``/data/user/<userid>/<packagename>/cache/<AppName>``Zcacher   r   r   r   user_cache_dirZAndroid.user_cache_dir.   r   r   c               r   r   r   r   r   r   r   r   4   s     # # #r   c                r   )zB:return: cache directory shared by users, same as `user_cache_dir`)r    r   r   r   site_cache_dirZAndroid.site_cache_dir3   s     """r   c               r   r   r   r   r   r   r   r   9   s     " " "r   c                r   )zB:return: state directory tied to the user, same as `user_data_dir`r   r   r   r   user_state_dirZAndroid.user_state_dir8   r   r   c               r   r   r   r   r   r   r   r   >   s      c r   c                    V P                   pV P                  '       d!   \        P                  P	                  VR4      pV# )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``
Zlogr    ZopinionospathZjoinr   r&      & r   user_log_dirZAndroid.user_log_dir=   1     ""<<<77<<e,Dr   c               r   r   r   r   r   r   r   r   I        + +C +r   c                    \        4       # )zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)_android_documents_folderr   r   r   user_documents_dirZAndroid.user_documents_dirH        )**r   c               r   r   r   r   r   r   r   r   N   r+   r   c                r,   )zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)_android_downloads_folderr   r   r   user_downloads_dirZAndroid.user_downloads_dirM   r/   r   c               r   r   r   r   r   r   r   r   S   s     * *3 *r   c                r,   )zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)_android_pictures_folderr   r   r   user_pictures_dirZAndroid.user_pictures_dirR   s     ())r   c               r   r   r   r   r   r   r   r   X   s     ( ( (r   c                r,   )zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)_android_videos_folderr   r   r   user_videos_dirZAndroid.user_videos_dirW   s     &''r   c               r   r   r   r   r   r   r   r   ]   s     ' ' 'r   c                r,   )zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)_android_music_folderr   r   r   user_music_dirZAndroid.user_music_dir\   s     %&&r   c               r   r   r   r   r   r   r   r   b   s     - -# -r   c                s    R# )zP:return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``z/storage/emulated/0/Desktopr   r   r   r   user_desktop_dirZAndroid.user_desktop_dira   s     -r   c               r   r   r   r   r   r   r   r   g   s      # r   c                r#   )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``
Ztmpr$   r'   r(   r   user_runtime_dirZAndroid.user_runtime_dirf   r*   r   c               r   r   r   r   r   r   r   r   r   s     % %# %r   c                r   )zF:return: runtime directory shared by users, same as `user_runtime_dir`)r9   r   r   r   site_runtime_dirZAndroid.site_runtime_dirq   s     $$$r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__Zpropertyr   r   r   r   r    r!   r"   r)   r.   r1   r3   r5   r7   r8   r9   r:   Z__static_attributes__r   r   r   r   r      sM    X X " " _ _ $ $ X X # # " "   + + + + * * ( ( ' ' - -   % %r   r   )Zmaxsizec               r   )r   r	   z
str | Noner   r   r   r   r   r   x   s     , , ,r   c                 s   Rp \         '       gN    ^ RIHp \        RVP	                  4       4      pVP                  4       P                  4       P                  4       p V f<    ^ RI	H
p V! R4      pVP                  4       P                  4       P                  4       p V fa   \        P                  ! R4      p\        P                   F4  pVP                  V4      '       g   K  VP!                  R4      ^ ,          p  M	  Rp V fb   \        P                  ! R4      p\        P                   F5  pVP                  V4      '       g   K  VP!                  R4      ^ ,          p  V # 	  Rp V #   \         d    Rp  ELi ; i  \         d    Rp  Li ; i)zE:return: base folder for the Android OS or None if it cannot be foundN)	mActivityandroid.content.Context	autoclassz /data/(data|user/\d+)/(.+)/filesz/filesz7/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files)r   Zandroidr<   r   ZgetApplicationContextZgetFilesDirZgetParentFilegetAbsolutePath	Exceptionjniusr?   reZcompilesysr&   ZmatchZsplit)Zresultr<   contextr?   Zpatternr&   s         r   r   r   w   sd    F =	)4i6U6U6WXG((*88:JJLF ~	 ( 9:G((*88:JJLF ~ **@AHHD}}T""H-a0 
 F~ **WXHHD}}T""H-a0 M 
 FMA  	F	  	F	s$   AE& !:E: &E76E7:F
	F
c               r   r   r   r   r   r   r   r            3 r   c                      ^ RI Hp  V ! R4      pV ! R4      pVP                  VP                  4      P	                  4       pV#   \
         d    Rp T# i ; i)z,:return: documents folder for the Android OSr>   r=   android.os.Environmentz/storage/emulated/0/Documents)rB   r?   getExternalFilesDirZDIRECTORY_DOCUMENTSr@   rA   )r?   rE   environmentZdocuments_dir       r   r-   r-      c    8#56 89$889X9XYiik   878   ?A AAc               r   r   r   r   r   r   r   r      rF   r   c                 rG   )z,:return: downloads folder for the Android OSr>   r=   rH   z/storage/emulated/0/Downloads)rB   r?   rI   ZDIRECTORY_DOWNLOADSr@   rA   )r?   rE   rJ   Zdownloads_dirrK   r   r0   r0      rL   rM   c               r   r   r   r   r   r   r   r      s      # r   c                 rG   )z+:return: pictures folder for the Android OSr>   r=   rH   z/storage/emulated/0/Pictures)rB   r?   rI   ZDIRECTORY_PICTURESr@   rA   )r?   rE   rJ   Zpictures_dirrK   r   r2   r2      sc    6#56 89#778V8VWggi   656rM   c               r   r   r   r   r   r   r   r      s       r   c                 rG   )z):return: videos folder for the Android OSr>   r=   rH   z/storage/emulated/0/DCIM/Camera)rB   r?   rI   ZDIRECTORY_DCIMr@   rA   )r?   rE   rJ   Z
videos_dirrK   r   r4   r4      sc    7#56 89!55k6P6PQaac
   76
7rM   c               r   r   r   r   r   r   r   r      s      s r   c                 rG   )z(:return: music folder for the Android OSr>   r=   rH   z/storage/emulated/0/Music)rB   r?   rI   ZDIRECTORY_MUSICr@   rA   )r?   rE   rJ   Z	music_dirrK   r   r6   r6      sc    0#56 89 44[5P5PQaac	   0/	0rM   )r;   Z
__future__r    r%   rC   rD   Z	functoolsr   Ztypingr   r   Zapir   r   r   r-   r0   r2   r4   r6   Z__all__r   r   r   <module>rN      s     " 	 	 
  &  f%o f%R 1, ,^ 1  1  1  1  1   r   