diff --git a/utils/general.py b/utils/general.py index 06bf088582dc..88e841d5a542 100755 --- a/utils/general.py +++ b/utils/general.py @@ -105,13 +105,20 @@ def get_latest_run(search_dir='.'): def user_config_dir(dir='Ultralytics'): # Return path of user configuration directory (make if necessary) - settings = {'Windows': 'AppData/Roaming', 'Linux': '.config', 'Darwin': 'Library/Application Support'} - path = Path.home() / settings.get(platform.system(), '') / dir + cfg = {'Windows': 'AppData/Roaming', 'Linux': '.config', 'Darwin': 'Library/Application Support'} + path = Path.home() / cfg.get(platform.system(), '') / dir + if not is_writeable(path): # GCP functions and AWS lambda solution, only /tmp is writeable + path = Path('/tmp') / dir if not path.is_dir(): path.mkdir() # make dir if required return path +def is_writeable(path): + # Return True if path has write permissions + return os.access(path, os.R_OK) + + def is_docker(): # Is environment a Docker container? return Path('/workspace').exists() # or Path('/.dockerenv').exists()