ó
    ‘Rj5#  ã                  ó  • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	J
r
  SSKJr   " S S	\5      r\" SS
9SS j5       r\" SS
9SS j5       r\" SS
9SS j5       r\" SS
9SS j5       r\" SS
9SS j5       r\" SS
9SS j5       rS	/rg)zAndroid.é    )ÚannotationsN)Ú	lru_cache)ÚTYPE_CHECKINGÚcasté   )ÚPlatformDirsABCc                  óX  • \ rS rSrSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       r\SS
 j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       rSrg)ÚAndroidé   a  
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                óJ   • U R                  [        S[        5       5      S5      $ )zd:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``ÚstrÚfiles©Ú_append_app_name_and_versionr   Ú_android_folder©Úselfs    ÚLD:\diplom_project\venv\Lib\site-packages\pip/_vendor/platformdirs/android.pyÚuser_data_dirÚAndroid.user_data_dir   ó"   € ð ×0Ñ0´°e¼_Ó=NÓ1OÐQXÓYÐYó    c                ó   • U R                   $ )z@:return: data directory shared by users, same as `user_data_dir`©r   r   s    r   Úsite_data_dirÚAndroid.site_data_dir   ó   € ð ×!Ñ!Ð!r   c                óJ   • U R                  [        S[        5       5      S5      $ )zw
:return: config directory tied to the user, e.g.         ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
r   Úshared_prefsr   r   s    r   Úuser_config_dirÚAndroid.user_config_dir!   s"   € ð ×0Ñ0´°e¼_Ó=NÓ1OÐQ_Ó`Ð`r   c                ó   • U R                   $ )zH:return: config directory shared by the users, same as `user_config_dir`)r    r   s    r   Úsite_config_dirÚAndroid.site_config_dir)   s   € ð ×#Ñ#Ð#r   c                óJ   • U R                  [        S[        5       5      S5      $ )ze:return: cache directory tied to the user, e.g.,``/data/user/<userid>/<packagename>/cache/<AppName>``r   Úcacher   r   s    r   Úuser_cache_dirÚAndroid.user_cache_dir.   r   r   c                ó   • U R                   $ )zB:return: cache directory shared by users, same as `user_cache_dir`)r'   r   s    r   Úsite_cache_dirÚAndroid.site_cache_dir3   s   € ð ×"Ñ"Ð"r   c                ó   • U R                   $ )zB:return: state directory tied to the user, same as `user_data_dir`r   r   s    r   Úuser_state_dirÚAndroid.user_state_dir8   r   r   c                ó€   • U R                   nU R                  (       a   [        R                  R	                  US5      nU$ )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©r   r4   s     r   Úuser_log_dirÚAndroid.user_log_dir=   ó/   € ð ×"Ñ"ˆØ�<�<Ü—7‘7—<‘<  eÓ,ˆDØˆr   c                ó   • [        5       $ )zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)Ú_android_documents_folderr   s    r   Úuser_documents_dirÚAndroid.user_documents_dirH   ó   € ô )Ó*Ð*r   c                ó   • [        5       $ )zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)Ú_android_downloads_folderr   s    r   Úuser_downloads_dirÚAndroid.user_downloads_dirM   r>   r   c                ó   • [        5       $ )zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)Ú_android_pictures_folderr   s    r   Úuser_pictures_dirÚAndroid.user_pictures_dirR   s   € ô (Ó)Ð)r   c                ó   • [        5       $ )zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)Ú_android_videos_folderr   s    r   Úuser_videos_dirÚAndroid.user_videos_dirW   s   € ô &Ó'Ð'r   c                ó   • [        5       $ )zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)Ú_android_music_folderr   s    r   Úuser_music_dirÚAndroid.user_music_dir\   s   € ô %Ó&Ð&r   c                ó   • g)zP:return: desktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``z/storage/emulated/0/Desktop© r   s    r   Úuser_desktop_dirÚAndroid.user_desktop_dira   s   € ð -r   c                ó€   • U R                   nU R                  (       a   [        R                  R	                  US5      nU$ )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``
Útmpr1   r6   s     r   Úuser_runtime_dirÚAndroid.user_runtime_dirf   r9   r   c                ó   • U R                   $ )zF:return: runtime directory shared by users, same as `user_runtime_dir`)rU   r   s    r   Úsite_runtime_dirÚAndroid.site_runtime_dirq   s   € ð ×$Ñ$Ð$r   rP   N©Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úpropertyr   r   r    r#   r'   r*   r-   r7   r<   rA   rE   rI   rM   rQ   rU   rX   Ú__static_attributes__rP   r   r   r
   r
      sM  † ñð óZó ðZð ó"ó ð"ð óaó ðað ó$ó ð$ð óZó ðZð ó#ó ð#ð ó"ó ð"ð óó ðð ó+ó ð+ð ó+ó ð+ð ó*ó ð*ð ó(ó ð(ð ó'ó ð'ð ó-ó ð-ð óó ðð ó%ó ó%r   r
   )Úmaxsizec                 óú  • Sn [         (       dM   SSKJn  [        SUR	                  5       5      nUR                  5       R                  5       R                  5       n U c;   SSK	J
n  U" S5      nUR                  5       R                  5       R                  5       n U c[  [        R                  " S5      n[        R                   H/  nUR                  U5      (       d  M  UR!                  S5      S   n   O   Sn U c\  [        R                  " S5      n[        R                   H0  nUR                  U5      (       d  M  UR!                  S5      S   n   U $    Sn U $ ! [         a    Sn  GNf = f! [         a    Sn  Nàf = f)	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   Úandroidre   r   ÚgetApplicationContextÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚjniusrh   ÚreÚcompileÚsysr4   ÚmatchÚsplit)Úresultre   Úcontextrh   Úpatternr4   s         r   r   r   w   sd  € ð €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:Å9E:c                 ó¬   •  SSK Jn   U " S5      nU " S5      nUR                  UR                  5      R	                  5       nU$ ! [
         a    Sn U$ f = f)z,:return: documents folder for the Android OSr   rg   rf   úandroid.os.Environmentz/storage/emulated/0/Documents)ro   rh   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrm   rn   )rh   rv   ÚenvironmentÚdocuments_dirs       r   r;   r;   §   óc   € ð8Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ$×8Ñ8¸×9XÑ9XÓY×iÑiÓkˆð Ðøô ó 8Ø7‰àÐð8úó   ‚?A ÁAÁAc                 ó¬   •  SSK Jn   U " S5      nU " S5      nUR                  UR                  5      R	                  5       nU$ ! [
         a    Sn U$ f = f)z,:return: downloads folder for the Android OSr   rg   rf   ry   z/storage/emulated/0/Downloads)ro   rh   rz   ÚDIRECTORY_DOWNLOADSrm   rn   )rh   rv   r|   Údownloads_dirs       r   r@   r@   ·   r~   r   c                 ó¬   •  SSK Jn   U " S5      nU " S5      nUR                  UR                  5      R	                  5       nU$ ! [
         a    Sn U$ f = f)z+:return: pictures folder for the Android OSr   rg   rf   ry   z/storage/emulated/0/Pictures)ro   rh   rz   ÚDIRECTORY_PICTURESrm   rn   )rh   rv   r|   Úpictures_dirs       r   rD   rD   Ç   sc   € ð6Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ#×7Ñ7¸×8VÑ8VÓW×gÑgÓiˆð Ðøô ó 6Ø5‰àÐð6úr   c                 ó¬   •  SSK Jn   U " S5      nU " S5      nUR                  UR                  5      R	                  5       nU$ ! [
         a    Sn U$ f = f)z):return: videos folder for the Android OSr   rg   rf   ry   z/storage/emulated/0/DCIM/Camera)ro   rh   rz   ÚDIRECTORY_DCIMrm   rn   )rh   rv   r|   Ú
videos_dirs       r   rH   rH   ×   sc   € ð7Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ!×5Ñ5°k×6PÑ6PÓQ×aÑaÓcˆ
ð Ðøô ó 7Ø6‰
àÐð7úr   c                 ó¬   •  SSK Jn   U " S5      nU " S5      nUR                  UR                  5      R	                  5       nU$ ! [
         a    Sn U$ f = f)z(:return: music folder for the Android OSr   rg   rf   ry   z/storage/emulated/0/Music)ro   rh   rz   ÚDIRECTORY_MUSICrm   rn   )rh   rv   r|   Ú	music_dirs       r   rL   rL   ç   sc   € ð0Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ ×4Ñ4°[×5PÑ5PÓQ×aÑaÓcˆ	ð Ðøô ó 0Ø/‰	àÐð0úr   )r[   z
str | NonerZ   )r`   Ú
__future__r   r3   rp   rr   Ú	functoolsr   Útypingr   r   Úapir   r
   r   r;   r@   rD   rH   rL   Ú__all__rP   r   r   Ú<module>r‘      sÏ   ðÙ å "ã 	Û 	Û 
Ý ß &å  ôf%ˆoô f%ñR �1Ñó,ó ð,ñ^ �1Ñóó ðñ �1Ñóó ðñ �1Ñóó ðñ �1Ñóó ðñ �1Ñóó ðð  ð�r   