Skip to content

Commit

Permalink
Centralize user_config_dir() decision making (ultralytics#4755)
Browse files Browse the repository at this point in the history
  • Loading branch information
glenn-jocher authored and CesarBazanAV committed Sep 29, 2021
1 parent a81c0df commit ff8a00a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
14 changes: 9 additions & 5 deletions utils/general.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,15 @@ def get_latest_run(search_dir='.'):
return max(last_list, key=os.path.getctime) if last_list else ''


def user_config_dir(dir='Ultralytics'):
# Return path of user configuration directory (make if necessary)
cfg = {'Windows': 'AppData/Roaming', 'Linux': '.config', 'Darwin': 'Library/Application Support'} # 3 config dirs
path = Path.home() / cfg.get(platform.system(), '') # OS-specific config dir
path = (path if is_writeable(path) else Path('/tmp')) / dir # GCP and AWS lambda fix, only /tmp is writeable
def user_config_dir(dir='Ultralytics', env_var='YOLOV5_CONFIG_DIR'):
# Return path of user configuration directory. Prefer environment variable if exists. Make dir if required.
env = os.getenv(env_var)
if env:
path = Path(env) # use environment variable
else:
cfg = {'Windows': 'AppData/Roaming', 'Linux': '.config', 'Darwin': 'Library/Application Support'} # 3 OS dirs
path = Path.home() / cfg.get(platform.system(), '') # OS-specific config dir
path = (path if is_writeable(path) else Path('/tmp')) / dir # GCP and AWS lambda fix, only /tmp is writeable
path.mkdir(exist_ok=True) # make if required
return path

Expand Down
3 changes: 1 addition & 2 deletions utils/plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"""

import math
import os
from copy import copy
from pathlib import Path

Expand All @@ -21,7 +20,7 @@
from utils.metrics import fitness

# Settings
CONFIG_DIR = Path(os.getenv('YOLOV5_CONFIG_DIR') or user_config_dir()) # Ultralytics settings dir
CONFIG_DIR = user_config_dir() # Ultralytics settings dir
matplotlib.rc('font', **{'size': 11})
matplotlib.use('Agg') # for writing to files only

Expand Down

0 comments on commit ff8a00a

Please sign in to comment.