docs: def make_graph(pkg):
      """Returns a dictionary of information about pkg & its recursive deps.
  
      Given a string, which can be parsed as a requirement specifier, return a
      dictionary where each key is the name of pkg or one of its recursive
      dependencies, and each value is a dictionary returned by research_package.
      (No, it's not really a graph.)
      """
      ignore = ['argparse', 'pip', 'setuptools', 'wsgiref']
      pkg_deps = recursive_dependencies(pkg_resources.Requirement.parse(pkg))
  
      dependencies = {key: {} for key in pkg_deps if key not in ignore}
      installed_packages = pkg_resources.working_set
      versions = {package.key: package.version for package in installed_packages}
      for package in dependencies:
          try:
              dependencies[package]['version'] = versions[package]
          except KeyError:
              warnings.warn("{} is not installed so we cannot compute "
                            "resources for its dependencies.".format(package),
                            PackageNotInstalledWarning)
              dependencies[package]['version'] = None
  
      for package in dependencies:
          package_data = research_package(package, dependencies[package]['version'])
          dependencies[package].update(package_data)
  
      return OrderedDict(
          [(package, dependencies[package]) for package in sorted(dependencies.keys())]
      )