code: def get_config_value(self, overrides, skip_environment=False):
          
          label, override, key = self._search_overrides(
              overrides, skip_environment
          )
  
          if override is None and self.default is None and self.required:
              raise YapconfItemNotFound(
                  'Could not find config value for {0}'.format(self.fq_name),
                  self
              )
  
          if override is None:
              self.logger.debug(
                  'Config value not found for {0}, falling back to default.'
                  .format(self.name)
              )
              value = self.default
          else:
              value = override[key]
  
          if value is None:
              return value
  
          converted_value = self.convert_config_value(value, label)
          self._validate_value(converted_value)
          return converted_value
docs: Get the configuration value from all overrides.
  
          Iterates over all overrides given to see if a value can be pulled
          out from them. It will convert each of these values to ensure they
          are the correct type.
  
          Args:
              overrides: A list of tuples where each tuple is a label and a
                  dictionary representing a configuration.
              skip_environment: Skip looking through the environment.
  
          Returns:
              The converted configuration value.
  
          Raises:
              YapconfItemNotFound: If an item is required but could not be found
                  in the configuration.
              YapconfItemError: If a possible value was found but the type
                  cannot be determined.
              YapconfValueError: If a possible value is found but during
                  conversion, an exception was raised.