docs: def yield_deps(doc):
      """
      TODO: This implementation is very specific to a particular environment and project, and should be generalized.
      :param doc:
      :return:
      """
  
      this_node = DependencyNode(doc, None)
  
      for r in doc.references():
  
          other_node = DependencyNode(r, this_node)
  
          yield (this_node, other_node)
  
          if isinstance(other_node, PackageDependencyNode):
              yield from yield_deps(other_node.doc)