� ��^i����ddlZddlZddlZddlmZddlmZGd�de��Zed���defd ���Z ed���defd ���Z dgZ dS) �N)� lru_cache�)�PlatformDirsABCc��eZdZdZedefd���Zedefd���Zedefd���Zedefd���Z edefd���Z edefd���Z edefd ���Z edefd ���Z edefd ���Zd S) �Androidz� Follows the guidance `from here `_. Makes use of the `appname ` and `version `. �returnc�F�|�t��d��S)zd:return: data directory tied to the user, e.g. ``/data/user///files/``�files��_append_app_name_and_version�_android_folder��selfs ��/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py� user_data_dirzAndroid.user_data_dir� ���0�0��1B�1B�G�L�L�L�c��|jS)z@:return: data directory shared by users, same as `user_data_dir`�rrs r� site_data_dirzAndroid.site_data_dir� ���!�!rc�F�|�t��d��S)z :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` � shared_prefsr rs r�user_config_dirzAndroid.user_config_dirs �� �0�0��1B�1B�N�S�S�Src��|jS)zH:return: config directory shared by the users, same as `user_config_dir`)rrs r�site_config_dirzAndroid.site_config_dir!s ���#�#rc�F�|�t��d��S)zj:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``�cacher rs r�user_cache_dirzAndroid.user_cache_dir&rrc��|jS)zB:return: state directory tied to the user, same as `user_data_dir`rrs r�user_state_dirzAndroid.user_state_dir+rrc�b�|j}|jr tj�|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`` �log�r�opinion�os�path�join�rr's r� user_log_dirzAndroid.user_log_dir0�0�� �"�� �<� -��7�<�<��e�,�,�D�� rc��t��S)zf :return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents`` )�_android_documents_folderrs r�user_documents_dirzAndroid.user_documents_dir;s�� )�*�*�*rc�b�|j}|jr tj�|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 r�user_runtime_dirzAndroid.user_runtime_dirBr+rN)�__name__� __module__� __qualname__�__doc__�property�strrrrrrr!r*r.r1�rrrr s��������� �M�s�M�M�M��X�M��"�s�"�"�"��X�"��T��T�T�T��X�T� �$��$�$�$��X�$��M��M�M�M��X�M��"��"�"�"��X�"���c�����X���+�C�+�+�+��X�+� ��#�����X���rr)�maxsizerc�� ddlm}|d��}|���������}nt#t $rgt jd��}tj D]4}|� |��r|� d��d}n�5td���YnwxYw|S)z':return: base folder for the Android OSr�� autoclass�android.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesz&Cannot find path to android app folder) �jniusr<� getFilesDir� getParentFile�getAbsolutePath� Exception�re�compile�sysr'�match�split�OSError)r<�Context�result�patternr's rr r Ns���D�#�#�#�#�#�#��)�5�6�6���)�)�+�+�9�9�;�;�K�K�M�M���� �D�D�D��*�@�A�A���H� D� D�D��}�}�T�"�"� ����H�-�-�a�0���� ��B�C�C� C��� D���� �Ms�A A � A.B=�<B=c�� ddlm}|d��}|d��}|�|j�����}n#t $rd}YnwxYw|S)z,:return: documents folder for the Android OSrr;r=zandroid.os.Environmentz/storage/emulated/0/Documents)r>r<�getExternalFilesDir�DIRECTORY_DOCUMENTSrArB)r<rI� Environment� documents_dirs rr-r-cs���8�#�#�#�#�#�#��)�5�6�6���i� 8�9�9� �$�8�8��9X�Y�Y�i�i�k�k� � �� �8�8�8�7� � � �8���� �s�AA � A�A) r&rCrE� functoolsr�apirrr7r r-�__all__r8rr�rTs��� � � � � � � � � � � � ������� � � � � � �B�B�B�B�B�o�B�B�B�J ��1������������( ��1���� �3� � � ��� � � ���r