docs: def get(self, section, option, **kwargs):
          """Get an option value for a given section.
  
          If `vars' is provided, it must be a dictionary. The option is looked up
          in `vars' (if provided), `section', and in `DEFAULTSECT' in that order.
          If the key is not found and `fallback' is provided, it is used as
          a fallback value. `None' can be provided as a `fallback' value.
  
          If interpolation is enabled and the optional argument `raw' is False,
          all interpolations are expanded in the return values.
  
          Arguments `raw', `vars', and `fallback' are keyword only.
  
          The section DEFAULT is special.
          """
          # keyword-only arguments
          raw = kwargs.get('raw', False)
          vars = kwargs.get('vars', None)
          fallback = kwargs.get('fallback', _UNSET)
  
          try:
              d = self._unify_values(section, vars)
          except NoSectionError:
              if fallback is _UNSET:
                  raise
              else:
                  return fallback
          option = self.optionxform(option)
          try:
              value = d[option]
          except KeyError:
              if fallback is _UNSET:
                  raise NoOptionError(option, section)
              else:
                  return fallback
  
          if raw or value is None:
              return value
          else:
              return self._interpolation.before_get(self, section, option, value,
                                                    d)