code: def _output_dependency_tree(self, target):
      
  
      def make_line(dep, indent, is_dupe=False):
        indent_join, indent_chars = ('--', '  |') if self.should_tree else ('', '  ')
        dupe_char = '*' if is_dupe else ''
        return ''.join((indent * indent_chars, indent_join, dupe_char, dep))
  
      def output_deps(dep, indent, outputted, stack):
        dep_id, internal = self._dep_id(dep)
  
        if self.is_minimal and dep_id in outputted:
          return
  
        if self.output_candidate(internal):
          yield make_line(dep_id,
                          0 if self.is_external_only else indent,
                          is_dupe=dep_id in outputted)
          outputted.add(dep_id)
  
        for sub_dep in self._enumerate_visible_deps(dep, self.output_candidate):
          for item in output_deps(sub_dep, indent + 1, outputted, stack + [(dep_id, indent)]):
            yield item
  
      for item in output_deps(target, 0, set(), []):
        yield item
docs: Plain-text depmap output handler.