code: def metadata(self, name):
          
          if name in self._children:
              return self._children[name].metadata()
          else:
              head, _, tail = name.partition('.')
              if head in self._children:
                  return self._children[head].metadata(key=tail)
              else:
                  raise KeyError(name)
docs: Return value and metadata associated with the named value
  
          Parameters
          ----------
          name : str
              name to retrieve. If the name contains '.'s it will be retrieved recursively
  
          Raises
          ------
          KeyError
              if name is not defined in the ConfigTree