źhddlmZddlZddlZddlZddlmZddlmZddl m Z Gdde Z ed dd Z ed ddZ dgZdS)) annotationsN) lru_cache)cast)PlatformDirsABCceZdZdZeddZeddZeddZeddZeddZ edd Z edd Z edd Z edd Z d S)Androidz Follows the guidance `from here `_. Makes use of the `appname ` and `version `. returnstrcl|tttdS)zd:return: data directory tied to the user, e.g. ``/data/user///files/``files_append_app_name_and_versionrr _android_folderselfs /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/pkg_resources/_vendor/platformdirs/android.py user_data_dirzAndroid.user_data_dir*00c?;L;L1M1MwWWWc|jS)z@:return: data directory shared by users, same as `user_data_dir`rrs r site_data_dirzAndroid.site_data_dir !!rcl|tttdS)z :return: config directory tied to the user, e.g. ``/data/user///shared_prefs/`` shared_prefsrrs ruser_config_dirzAndroid.user_config_dirs* 00c?;L;L1M1M~^^^rc|jS)zH:return: config directory shared by the users, same as `user_config_dir`)rrs rsite_config_dirzAndroid.site_config_dir$s ##rcl|tttdS)zj:return: cache directory tied to the user, e.g. e.g. ``/data/user///cache/``cacherrs 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`` logr"opinionospathjoinrr*s r user_log_dirzAndroid.user_log_dir30 " < -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_dirEr.rNr r )__name__ __module__ __qualname____doc__propertyrrrrr"r$r-r1r4rrr r sJ XXXXX"""X"___X_ $$$X$XXXXX"""X"X+++X+ Xrr )maxsizer str | Nonecj ddlm}|d}|}ng#t $rZt jd}tj D]4}| |r| dd}n5d}YnwxYw|S)zB:return: base folder for the Android OS or None if cannot be foundr autoclassandroid.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesN) jniusr@ getFilesDir getParentFilegetAbsolutePath Exceptionrecompilesysr*matchsplit)r@Contextresultpatternr*s rrrQs######)566$0022@@BBRRTT *@AAH  D}}T"" H--a0 F MsA A A!B0/B0r c ddlm}|d}|d}||j}n#t $rd}YnwxYw|S)z,:return: documents folder for the Android OSrr?rAzandroid.os.Environmentz/storage/emulated/0/Documents)rBr@getExternalFilesDirDIRECTORY_DOCUMENTSrErF)r@rL Environment documents_dirs rr0r0fs8######)566i 899 $889XYYiikk 8887 8 sAA AA)r r=r5) __future__rr)rGrI functoolsrtypingrapirr rr0__all__r;rrrYs""""""  BBBBBoBBBJ 1( 1      r