2|rddlZddlZddlZddlmZddlmZGddeZeddefd Z eddefd Z dgZ dS) N) lru_cache)PlatformDirsABCceZdZdZedefdZedefdZedefdZedefdZ edefdZ edefdZ edefd Z edefd Z edefd Zd S) Androidz Follows the guidance `from here `_. Makes use of the `appname ` and `version `. returncF|tdS)zd:return: data directory tied to the user, e.g. ``/data/user///files/``files_append_app_name_and_version_android_folderselfs /builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py user_data_dirzAndroid.user_data_dir 001B1BGLLLc|jS)z@:return: data directory shared by users, same as `user_data_dir`rrs r site_data_dirzAndroid.site_data_dir !!rcF|tdS)z :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` shared_prefsr rs ruser_config_dirzAndroid.user_config_dirs 001B1BNSSSrc|jS)zH:return: config directory shared by the users, same as `user_config_dir`)rrs rsite_config_dirzAndroid.site_config_dir!s ##rcF|tdS)zj:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``cacher rs ruser_cache_dirzAndroid.user_cache_dir&rrc|jS)zB:return: state directory tied to the user, same as `user_data_dir`rrs ruser_state_dirzAndroid.user_state_dir+rrcb|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`` logropinionospathjoinrr's r user_log_dirzAndroid.user_log_dir00 " < -7<<e,,D rctS)zf :return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents`` )_android_documents_folderrs ruser_documents_dirzAndroid.user_documents_dir;s )***rcb|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 ruser_runtime_dirzAndroid.user_runtime_dirBr+rN)__name__ __module__ __qualname____doc__propertystrrrrrrr!r*r.r1rrrr s MsMMMXM"s"""X"TTTTXT $$$$X$MMMMXM""""X"cX+C+++X+ #Xrr)maxsizerc ddlm}|d}|}nt#t $rgt jd}tj D]4}| |r| dd}n5tdYnwxYw|S)z':return: base folder for the Android OSr autoclassandroid.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesz&Cannot find path to android app folder) jniusr< getFilesDir getParentFilegetAbsolutePath Exceptionrecompilesysr'matchsplitOSError)r<Contextresultpatternr's rr r NsD######)566))++99;;KKMM DDD*@AAH D DD}}T"" H--a0 BCC C D MsA 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<getExternalFilesDirDIRECTORY_DOCUMENTSrArB)r<rI Environment documents_dirs rr-r-cs8######)566i 899 $889XYYiikk 8887 8 sAA AA) r&rCrE functoolsrapirrr7r r-__all__r8rrrTs  BBBBBoBBBJ 1( 1 3      r