class_docstr: A Theme is a set of HTML templates and configurations.
  
  This class supports both theme directory and theme archive (zipped theme).
class_docstr_tok: ["A","Theme","is","a","set","of","HTML","templates","and","configurations",".","This","class","supports","both","theme","directory","and","theme","archive","(","zipped","theme",")","."]
docstr: Return the value for a theme configuration setting, searching the
  base theme chain.
docstr_tok: ["Return","the","value","for","a","theme","configuration","setting",",","searching","the","base","theme","chain","."]
code: def get_config(
      self, section: str, name: str, default: Any = NODEFAULT
  ) -> Any:
      """Return the value for a theme configuration setting, searching the
      base theme chain.
      """
      try:
          return self.config.get(section, name)
      except (
          configparser.NoOptionError,
          configparser.NoSectionError,
      ) as exc:
          if self.base:
              return self.base.get_config(section, name, default)
  
          if default is NODEFAULT:
              raise ThemeError(
                  __(
                      "setting %s.%s occurs in none of the "
                      "searched theme configs"
                  )
                  % (section, name)
              ) from exc
          return default
  
imports: from __future__ import annotations
  import configparser
  import os
  import shutil
  import sys
  import tempfile
  from os import path
  from typing import TYPE_CHECKING, Any
  from zipfile import ZipFile
  import contextlib
  from sphinx import package_dir
  from sphinx.config import check_confval_types
  from sphinx.errors import ThemeError
  from sphinx.locale import __
  from sphinx.util import logging
  from sphinx.util.osutil import ensuredir
label_desc: Use image node_id 3 for calling the Theme obj's underlying member method code with example usage: obj.get_config(section, name, default) and returns: self, default, self