docs: def save(self, filepath):
          # type: (str) -> None
          """Save current configuration to file.
  
          :param str filepath: Path to file where settings will be saved.
          :raises: ValueError if supplied filepath cannot be written to.
          """
          sections = [
              "Connection",
              "Proxies",
              "RedirectPolicy"]
          for section in sections:
              self._config.add_section(section)
  
          self._config.set("Connection", "timeout", self.connection.timeout)
          self._config.set("Connection", "verify", self.connection.verify)
          self._config.set("Connection", "cert", self.connection.cert)
  
          self._config.set("Proxies", "proxies", self.proxies.proxies)
          self._config.set("Proxies", "env_settings",
                           self.proxies.use_env_settings)
  
          self._config.set("RedirectPolicy", "allow", self.redirect_policy.allow)
          self._config.set("RedirectPolicy", "max_redirects",
                           self.redirect_policy.max_redirects)
  
          try:
              with open(filepath, 'w') as configfile:
                  self._config.write(configfile)
          except (KeyError, EnvironmentError):
              error = "Supplied config filepath invalid."
              raise_with_traceback(ValueError, error)
          finally:
              self._clear_config()