docs: def traverse_preorder(self, leaves=True, internal=True):
          '''Perform a preorder traversal of the ``Node`` objects in this ``Tree``
  
          Args:
              ``leaves`` (``bool``): ``True`` to include leaves, otherwise ``False``
  
              ``internal`` (``bool``): ``True`` to include internal nodes, otherwise ``False``
          '''
          for node in self.root.traverse_preorder(leaves=leaves, internal=internal):
              yield node