def __getitem__(self, parameter_name):
if self._inotify and self._notifier.check_events(timeout = <NUM_LIT:10>):<EOL><INDENT>logger.debug('<STR_LIT>', self._notifier.check_events())<EOL>logger.info('<STR_LIT>')<EOL>self._notifier.read_events()<EOL>self._notifier.process_events()<EOL><DEDENT>parameter_name = parameter_name.replace('<STR_LIT:->', '<STR_LIT:_>')<EOL>logger.info('<STR_LIT>', parameter_name)<EOL>if parameter_name not in self.parameters:<EOL><INDENT>parameter_name = '<STR_LIT:.>'.join([ '<STR_LIT:default>', parameter_name ])<EOL>if parameter_name not in self.parameters:<EOL><INDENT>raise KeyError(parameter_name.replace('<STR_LIT>', '<STR_LIT>', <NUM_LIT:1>))<EOL><DEDENT><DEDENT>if not self.parsed:<EOL><INDENT>logger.warn('<STR_LIT>')<EOL>caller_frame = inspect.stack()[<NUM_LIT:1>]<EOL>caller_module = inspect.getmodule(caller_frame[<NUM_LIT:0>])<EOL>caller_function = caller_frame[<NUM_LIT:3>]<EOL>caller_line = caller_frame[<NUM_LIT:2>]<EOL>logger.warn('<STR_LIT>', caller_module, caller_function, caller_line)<EOL>warnings.warn('<STR_LIT>', RuntimeWarning)<EOL><DEDENT>default = self.defaults.get(parameter_name)<EOL>logger.info('<STR_LIT>', default)<EOL>logger.debug('<STR_LIT>', parameter_name, self.parameters[parameter_name]['<STR_LIT>'])<EOL>_ = '<STR_LIT:_>'.join(parameter_name.replace('<STR_LIT>', '<STR_LIT>', <NUM_LIT:1>).split('<STR_LIT:.>')).upper()<EOL>if self.parameters[parameter_name]['<STR_LIT>'] is not None:<EOL><INDENT>_ = self.parameters[parameter_name]['<STR_LIT>'] + '<STR_LIT:_>' + _<EOL><DEDENT>logger.debug('<STR_LIT>', _)<EOL>value = os.environ.get(_, default)<EOL>try:<EOL><INDENT>value = os.path.expandvars(value)<EOL><DEDENT>except TypeError:<EOL><INDENT>pass<EOL><DEDENT>logger.info('<STR_LIT>', value)<EOL>configuration_value = default<EOL>for configuration_file_name, configuration_file in self.configuration_files.items():<EOL><INDENT>logger.info('<STR_LIT>', configuration_file_name)<EOL>try:<EOL><INDENT>configuration_value = configuration_file.get(*parameter_name.split('<STR_LIT:.>', <NUM_LIT:1>))<EOL><DEDENT>except (NoOptionError, NoSectionError):<EOL><INDENT>logger.info('<STR_LIT>', parameter_name)<EOL>continue<EOL><DEDENT>logger.info('<STR_LIT>', configuration_value)<EOL><DEDENT>logger.debug('<STR_LIT>', configuration_value)<EOL>if configuration_value != default:<EOL><INDENT>value = configuration_value<EOL><DEDENT>logger.info('<STR_LIT>', value)<EOL>argument_name = parameter_name<EOL>if self._group_prefix:<EOL><INDENT>argument_name = argument_name.replace('<STR_LIT:.>', '<STR_LIT:_>', <NUM_LIT:1>)<EOL><DEDENT>else:<EOL><INDENT>_, argument_name = argument_name.split('<STR_LIT:.>', <NUM_LIT:1>)<EOL><DEDENT>argument_name = argument_name.replace('<STR_LIT>', '<STR_LIT>', <NUM_LIT:1>)<EOL>argument_value = getattr(self._argument_namespace, argument_name, default)<EOL>logger.debug('<STR_LIT>', argument_value)<EOL>if argument_value != default:<EOL><INDENT>value = argument_value<EOL><DEDENT>logger.info('<STR_LIT>', value)<EOL>if value is not None:<EOL><INDENT>value = self.parameters[parameter_name]['<STR_LIT:type>'](value)<EOL><DEDENT>return value<EOL>
Return the value of the requested parameter (by name).

        Given the ``parameter_name``, this method returns the found value for
        that parameter.  All three sources are searched for values.  The
        expected value is returned from the highest precedence source containing
        a value.

        The ``parameter_name`` must be prefixed with the group name and a dot
        '.' (i.e. group.long_option where group is the group name and
        long_option is the longest option in the options for the parameter).
        The group name can be ommitted if the parameter is a member of the
        'default' group.  The ``parameter_name`` is insensitive to the
        difference between hyphens '-' and underscores '_'; thus these
        characters can be used interchangeably.

        **Arguments**

        :``parameter_name``: Name of the parameter whose value is returned.

        **Return**

        Highest precedent value found for the requested parameter.