code: def _read_dict(self, data_dict, layer=None, source=None):
          
          for k, v in data_dict.items():
              self._set_with_metadata(k, v, layer, source)
docs: Load a dictionary into the ConfigTree. If the dict contains nested dicts
          then the values will be added recursively. See module docstring for example code.
  
          Parameters
          ----------
          data_dict : dict
              source data
          layer : str
              layer to load data into. If none is supplied the outermost one is used
          source : str
              Source to attribute the values to