diff options
Diffstat (limited to 'extras/configuration.py')
m--------- | extras | 0 | ||||
-rw-r--r-- | extras/configuration.py | 57 |
2 files changed, 0 insertions, 57 deletions
diff --git a/extras b/extras new file mode 160000 +Subproject dfe657177453423987544798d9763b2938874b4 diff --git a/extras/configuration.py b/extras/configuration.py deleted file mode 100644 index 1592fe6..0000000 --- a/extras/configuration.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Configuration -""" - -import os - -class ConfigException(Exception): - """ - Configuration error. Maybe a missing config variable. - """ - -class Config(object): - """ - The Config class handles all configuration for pokemontools. Other classes - and functions use a Config object to determine where expected files can be - located. - """ - - def __init__(self, **kwargs): - """ - Store all parameters. - """ - self._config = {} - - for (key, value) in kwargs.items(): - if key not in self.__dict__: - self._config[key] = value - else: - raise ConfigException( - "Can't store \"{0}\" in configuration because the key conflicts with an existing property." - .format(key) - ) - - if "path" not in self._config: - self._config["path"] = os.getcwd() - - # vba save states go into ./save-states/ - if "save_state_path" not in self._config: - self._config["save_state_path"] = os.path.join(self._config["path"], "save-states/") - - # assume rom is at ./baserom.gbc - if "rom" not in self._config: - self._config["rom_path"] = os.path.join(self._config["path"], "baserom.gbc") - - def __getattr__(self, key): - """ - Grab the value from the class properties, then check the configuration, - and raise an exception if nothing works. - """ - if key in self.__dict__: - return self.__dict__[key] - elif key in self._config: - return self._config[key] - else: - raise ConfigException( - "no config found for \"{0}\"".format(key) - ) |