Ë
    äØjj+  ã                  ó,  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ  G d„ d	e«      Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Zd	gZy)zAndroid.é    )ÚannotationsN)Ú	lru_cache)Úcasté   )ÚPlatformDirsABCc                  ó  — e Zd ZdZedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
edd„«       Zedd	„«       Zedd
„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zy)Ú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   — | j                  t        t        t        «       «      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    úb/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.pyÚuser_data_dirzAndroid.user_data_dir   ó!   € ð ×0Ñ0´´c¼?Ó;LÓ1MÈwÓWÐWó    c                ó   — | j                   S )z@:return: data directory shared by users, same as `user_data_dir`©r   r   s    r   Úsite_data_dirzAndroid.site_data_dir   ó   € ð ×!Ñ!Ð!r   c                óR   — | j                  t        t        t        «       «      d«      S )z‡
        :return: config directory tied to the user, e.g.         ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
        Úshared_prefsr   r   s    r   Úuser_config_dirzAndroid.user_config_dir   s!   € ð ×0Ñ0´´c¼?Ó;LÓ1MÈ~Ó^Ð^r   c                ó   — | j                   S )zH:return: config directory shared by the users, same as `user_config_dir`)r   r   s    r   Úsite_config_dirzAndroid.site_config_dir'   s   € ð ×#Ñ#Ð#r   c                óR   — | j                  t        t        t        «       «      d«      S )zj:return: cache directory tied to the user, e.g. e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>``Úcacher   r   s    r   Úuser_cache_dirzAndroid.user_cache_dir,   r   r   c                ó   — | j                   S )zB:return: cache directory shared by users, same as `user_cache_dir`)r!   r   s    r   Úsite_cache_dirzAndroid.site_cache_dir1   s   € ð ×"Ñ"Ð"r   c                ó   — | j                   S )zB:return: state directory tied to the user, same as `user_data_dir`r   r   s    r   Úuser_state_dirzAndroid.user_state_dir6   r   r   c                óv   — | j                   }| j                  r t        j                  j	                  |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©r   r+   s     r   Úuser_log_dirzAndroid.user_log_dir;   ó/   € ð ×"Ñ"ˆØ�<Š<Ü—7‘7—<‘<  eÓ,ˆDØˆr   c                ó   — t        «       S )zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)Ú_android_documents_folderr   s    r   Úuser_documents_dirzAndroid.user_documents_dirF   ó   € ô )Ó*Ð*r   c                ó   — t        «       S )zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)Ú_android_downloads_folderr   s    r   Úuser_downloads_dirzAndroid.user_downloads_dirK   r3   r   c                ó   — t        «       S )zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)Ú_android_pictures_folderr   s    r   Úuser_pictures_dirzAndroid.user_pictures_dirP   s   € ô (Ó)Ð)r   c                ó   — t        «       S )zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)Ú_android_videos_folderr   s    r   Úuser_videos_dirzAndroid.user_videos_dirU   s   € ô &Ó'Ð'r   c                ó   — t        «       S )zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)Ú_android_music_folderr   s    r   Úuser_music_dirzAndroid.user_music_dirZ   s   € ô %Ó&Ð&r   c                óv   — | j                   }| j                  r t        j                  j	                  |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_dirzAndroid.user_runtime_dir_   r/   r   N©Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r!   r#   r%   r.   r2   r6   r9   r<   r?   rB   © r   r   r	   r	      s%  „ ñð òXó ðXð ò"ó ð"ð ò_ó ð_ð ò$ó ð$ð òXó ðXð ò#ó ð#ð ò"ó ð"ð òó ðð ò+ó ð+ð ò+ó ð+ð ò*ó ð*ð ò(ó ð(ð ò'ó ð'ð òó ñr   r	   )Úmaxsizec                 óF  — 	 ddl m}   | d«      }|j                  «       j                  «       j	                  «       }|S # t
        $ rY t        j                  d«      }t        j                  D ]+  }|j                  |«      sŒ|j                  d«      d   } Y |S  d}Y |S w xY w)zE:return: base folder for the Android OS or None if it cannot be foundr   ©Ú	autoclassúandroid.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesN)ÚjniusrN   ÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚreÚcompileÚsysr+   ÚmatchÚsplit)rN   ÚcontextÚresultÚpatternr+   s        r   r   r   k   s¤   € ðå#áÐ5Ó6ˆØ$×0Ñ0Ó2×@Ñ@ÓB×RÑRÓTˆð €Møô ò ä—*‘*Ð@ÓAˆÜ—H‘Hò 	ˆDØ�}‰}˜TÕ"ØŸ™ HÓ-¨aÑ0�Ùð €Mð	ð
 ‰FØ€Mðús   ‚:> ¾AB ÂB ÂB ÂB c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z,:return: documents folder for the Android OSr   rM   rO   úandroid.os.Environmentz/storage/emulated/0/Documents)rP   rN   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrS   rT   )rN   rZ   ÚenvironmentÚdocuments_dirs       r   r1   r1   €   óc   € ð8Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ$×8Ñ8¸×9XÑ9XÓY×iÑiÓkˆð Ðøô ò 8Ø7‰àÐð8úó   ‚?A ÁAÁAc                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z,:return: downloads folder for the Android OSr   rM   rO   r^   z/storage/emulated/0/Downloads)rP   rN   r_   ÚDIRECTORY_DOWNLOADSrS   rT   )rN   rZ   ra   Údownloads_dirs       r   r5   r5   �   rc   rd   c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z+:return: pictures folder for the Android OSr   rM   rO   r^   z/storage/emulated/0/Pictures)rP   rN   r_   ÚDIRECTORY_PICTURESrS   rT   )rN   rZ   ra   Úpictures_dirs       r   r8   r8       sc   € ð6Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ#×7Ñ7¸×8VÑ8VÓW×gÑgÓiˆð Ðøô ò 6Ø5‰àÐð6úrd   c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z):return: videos folder for the Android OSr   rM   rO   r^   z/storage/emulated/0/DCIM/Camera)rP   rN   r_   ÚDIRECTORY_DCIMrS   rT   )rN   rZ   ra   Ú
videos_dirs       r   r;   r;   °   sc   € ð7Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ!×5Ñ5°k×6PÑ6PÓQ×aÑaÓcˆ
ð Ðøô ò 7Ø6‰
àÐð7úrd   c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z(:return: music folder for the Android OSr   rM   rO   r^   z/storage/emulated/0/Music)rP   rN   r_   ÚDIRECTORY_MUSICrS   rT   )rN   rZ   ra   Ú	music_dirs       r   r>   r>   À   sc   € ð0Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ ×4Ñ4°[×5PÑ5PÓQ×aÑaÓcˆ	ð Ðøô ò 0Ø/‰	àÐð0úrd   )rD   z
str | NonerC   )rH   Ú
__future__r   r*   rU   rW   Ú	functoolsr   Útypingr   Úapir   r	   r   r1   r5   r8   r;   r>   Ú__all__rJ   r   r   ú<module>rv      sÎ   ðÙ Ý "ã 	Û 	Û 
Ý Ý å  ô[ˆoô [ñ| �1Ôòó ðñ( �1Ôòó ðñ �1Ôòó ðñ �1Ôòó ðñ �1Ôòó ðñ �1Ôòó ðð  ð�r   