code: def _set_values(self, values: Dict[str, any]):
      sub_modules = set()
      for k, v in values.items():
          if not _is_valid(k):
              raise KeyError(f"Invalid attribute name '{k}'")
          if k in self.__types:
              if k in self.__cached:
                  raise ValueError(
                      f"Cannot set {self.__class__.__name__}:{k} after it was accessed"
                  )
  
              self.__explicitly_specified.add(k)
  
              self.__values_override[k] = v
          else:
              tk, *_ = k.split(".")
              sub_modules.add(tk)
              if tk not in self.__types:
                  raise KeyError(
                      f"Invalid attribute name '{tk}' (taken from '{k}')"
                  )
  
              if tk not in self.__secondary_values:
                  self.__secondary_values[tk] = {}
              self.__secondary_values[tk][k[len(tk) + 1 :]] = v
  
      for k in sub_modules:
          if k in self.__cached_configs:
              s_values = self.__secondary_values[k]
              del self.__secondary_values[k]
              self.__cached_configs[k]._set_values(s_values)
  
imports: import types
  import warnings
  from collections import OrderedDict
  from typing import Dict, List, Callable, Union, Tuple, Optional, Type, Set, Iterable, Any
  from .config_function import ConfigFunction
  from .config_item import ConfigItem
  from .eval_function import EvalFunction
  from .utils import Value
  from ...None import monit
label_desc: Use image node_id 23 for calling the Configs obj's underlying member method code with example usage: obj._set_values(values) without return types