code: def update_namespace(namespace, path, name):
      
  
      if len(path) == 1:
          setattr(namespace, path[0], name)
      else:
          if hasattr(namespace, path[0]):
              if isinstance(getattr(namespace, path[0]), six.string_types):
                  raise ValueError("Conflicting assignments at namespace"
                                   " level '%s'" % path[0])
          else:
              a = Namespace()
              setattr(namespace, path[0], a)
  
          update_namespace(getattr(namespace, path[0]), path[1:], name)
docs: A recursive function that takes a root element, list of namespaces,
      and the value being stored, and assigns namespaces to the root object
      via a chain of Namespace objects, connected through attributes
  
      Parameters
      ----------
      namespace : Namespace
          The object onto which an attribute will be added
      path : list
          A list of strings representing namespaces
      name : str
          The value to be stored at the bottom level