class_docstr: A config utility class.
class_docstr_tok: ["A","config","utility","class","."]
docstr: Recursively update internal members.
docstr_tok: ["Recursively","update","internal","members","."]
code: def _update(self, config_dict, allow_new_keys=True):
      """Recursively update internal members."""
      if not config_dict:
          return
  
      for k, v in six.iteritems(config_dict):
          if k not in self.__dict__:
              if allow_new_keys:
                  self.__setattr__(k, v)
              else:
                  raise KeyError(
                      "Key `{}` does not exist for overriding. ".format(
                          k
                      )
                  )
          else:
              if isinstance(self.__dict__[k], Config) and isinstance(
                  v, dict
              ):
                  self.__dict__[k]._update(v, allow_new_keys)
              elif isinstance(self.__dict__[k], Config) and isinstance(
                  v, Config
              ):
                  self.__dict__[k]._update(v.as_dict(), allow_new_keys)
              else:
                  self.__setattr__(k, v)
  
imports: import ast
  import collections
  import copy
  from typing import Any, Dict, Text
  import six
  import tensorflow
  import yaml
label_desc: Use image node_id 8 for calling the Config obj's underlying member method code with example usage: obj._update(config_dict, allow_new_keys) without return types