GPy/GPy/util/config.py
Safrone 14046705cf fix: fallback for when no environment variables are set (#467)
* fix: dev: add or in home directory getting

adds another or when getting the home directory with os.getenv() so that if neither $HOME nor $USERPROFILE environment variable is set, os.path.join() will not fail by getting a None and the config will revert to the default configuration file.

* fix: remove extra statement
2017-01-09 09:50:29 +00:00

32 lines
1.2 KiB
Python

#
# This loads the configuration
#
import os
try:
#Attempt Python 2 ConfigParser setup
import ConfigParser
config = ConfigParser.ConfigParser()
from ConfigParser import NoOptionError
except ImportError:
#Attempt Python 3 ConfigParser setup
import configparser
config = configparser.ConfigParser()
from configparser import NoOptionError
# This is the default configuration file that always needs to be present.
default_file = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'defaults.cfg'))
# These files are optional
# This specifies configurations that are typically specific to the machine (it is found alongside the GPy installation).
local_file = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'installation.cfg'))
# This specifies configurations specific to the user (it is found in the user home directory)
home = os.getenv('HOME') or os.getenv('USERPROFILE') or ''
user_file = os.path.join(home,'.config','GPy', 'user.cfg')
# Read in the given files.
config.readfp(open(default_file))
config.read([local_file, user_file])
if not config:
raise ValueError("No configuration file found at either " + user_file + " or " + local_file + " or " + default_file + ".")