'Provides a Hierarichial structure to a ReSTDocument
You can write to it similiar to as you can to a ReSTDocument but
has an innate structure for more orginaztion and abstraction.
:param name: The name of the document
:param section_names: A list of sections to be included
in the document.
:param target: The target documentation of the Document structure
:param context: A dictionary of data to store with the strucuture. These
are only stored per section not the entire structure.'

def __init__(self, name, section_names=None, target='man', context=None):

    super(DocumentStructure, self).__init__(target=target)
    self._name = name
    self._structure = OrderedDict()
    self._path = [self._name]
    self._context = {}
    if (context is not None):
        self._context = context
    if (section_names is not None):
        self._generate_structure(section_names)
