code: def require_bool(self, key: str) -> bool:
          
          v = self.get_bool(key)
          if v is None:
              raise ConfigMissingError(self.full_key(key))
          return v
docs: Returns a configuration value, as a bool, by its given key.  If it doesn't exist, or the
          configuration value is not a legal bool, an error is thrown.
  
          :param str key: The requested configuration key.
          :return: The configuration key's value.
          :rtype: bool
          :raises ConfigMissingError: The configuration value did not exist.
          :raises ConfigTypeError: The configuration value existed but couldn't be coerced to bool.