#
# 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 + ".")
