Source code for AutoArchive._infrastructure.configuration._configuration

# _configuration.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2014 Róbert Čerňanský



""":class:`_Configuration` class."""



__all__ = ["_Configuration"]



# {{{ INCLUDES

from . import ConfigurationBase, OptionsUtils

# }}} INCLUDES



# {{{ CLASSES

[docs]class _Configuration(ConfigurationBase): """Application's configuration. Provides access to application's configuration. All configuration options that can be accessed via this class are defined as static attributes of :class:`.Options`. After construction, all options are added and initialized to ``None``. It is expected that concrete values will be added using the :meth:`_addOrReplaceOption()` method.""" def __init__(self): super().__init__() self.__populateWithNones()
[docs] def _addOrReplaceOption(self, optionName, value): """Adds an *option* and its *value* replacing the *value* if already exists. String representation of the *value* is expected. It will be converted to a proper type defined by the *option*. :param optionName: Option that will be added or replaced. :type optionName: ``str`` :param value: Value of passed *option* with name ``optionName``. :type value: ``str`` :raise KeyError: If *option* with name ``optionName`` does not exists. :raise ValueError: If *option's* *value* is not correct.""" option = OptionsUtils.getOption(optionName) self.options_[option] = OptionsUtils.strToOptionType(option, value)
def __populateWithNones(self): for option in OptionsUtils.getAllOptions(): self.options_[option] = None
# }}} CLASSES