# Path: peekaboo/exceptions.py
# class PeekabooConfigException(PeekabooException):
#     pass
# 
# Path: peekaboo/toolbox/cortex.py
# class tlp(enum.Enum):
#     WHITE = 0
#     GREEN = 1
#     AMBER = 2
#     RED = 3


import re
import sys
import logging
import configparser
from peekaboo.exceptions import PeekabooConfigException
from peekaboo.toolbox.cortex import tlp

        getter = {
            int: self.getint,
            float: self.getfloat,
            bool: self.getboolean,
            list: self.getlist,
            tuple: self.getlist,
            str: self.get,
            None: self.get,

            # these only work when given explicitly as option_type
            self.LOG_LEVEL: self.get_log_level,
            self.OCTAL: self.getoctal,
            self.RELIST: self.getrelist,
            self.IRELIST: self.getirelist,
            tlp: self.gettlp,
        }

        return getter[option_type](section, option, fallback=fallback)

    def set_known_options(self, config_options):
        """ Set a number of known config options as member variables. Also
        checks for unknown options being present.

        @param config_options: the mapping of config option to section and
                               option name
        @type config_options: Dict of two-item-tuples
                              (config_option: [section, option])
        @raises PeekabooConfigException: if any unknown sections or options are
                                         found. """

# Path: peekaboo/exceptions.py
# class PeekabooConfigException(PeekabooException):
#     pass
# 
# Path: peekaboo/toolbox/cortex.py
# class tlp(enum.Enum):
#     WHITE = 0
#     GREEN = 1
#     AMBER = 2
#     RED = 3


# Path: peekaboo/config.py
import re
import sys
import logging
import configparser
from peekaboo.exceptions import PeekabooConfigException
from peekaboo.toolbox.cortex import tlp


        getter = {
            int: self.getint,
            float: self.getfloat,
            bool: self.getboolean,
            list: self.getlist,
            tuple: self.getlist,
            str: self.get,
            None: self.get,

            # these only work when given explicitly as option_type
            self.LOG_LEVEL: self.get_log_level,
            self.OCTAL: self.getoctal,
            self.RELIST: self.getrelist,
            self.IRELIST: self.getirelist,
            tlp: self.gettlp,
        }

        return getter[option_type](section, option, fallback=fallback)

    def set_known_options(self, config_options):
        """ Set a number of known config options as member variables. Also
        checks for unknown options being present.

        @param config_options: the mapping of config option to section and
                               option name
        @type config_options: Dict of two-item-tuples
                              (config_option: [section, option])
        @raises PeekabooConfigException: if any unknown sections or options are
                                         found. """

        settings = vars(self)