class_docstr: An object encapsulating data necessary for a OpenGL context
  
  Parameters
  ----------
  config : dict | None
      The requested configuration.
  shared : instance of GLContext | None
      The shared context.
class_docstr_tok: ["An","object","encapsulating","data","necessary","for","a","OpenGL","context","Parameters","--","--","--","--","--","config",":","dict","|","None","The","requested","configuration",".","shared",":","instance","of","GLContext","|","None","The","shared","context","."]
code: def _set_config(self, config):
      self._config = deepcopy(_default_dict)
      self._config.update(config or {})
      # Check the config dict
      for key, val in self._config.items():
          if key not in _default_dict:
              raise KeyError(
                  "Key %r is not a valid GL config key." % key
              )
          if not isinstance(val, type(_default_dict[key])):
              raise TypeError(
                  "Context value of %r has invalid type." % key
              )
  
imports: from copy import deepcopy
  import weakref
  from .glir import GlirQueue, BaseGlirParser, GlirParser, glir_logger
  from .wrappers import BaseGlooFunctions
  from ..None import config
label_desc: Use image node_id 3 for calling the GLContext obj's underlying member method code with example usage: obj._set_config(config) without return types