code: def search_packages_info(query):
      
      installed = {}
      for p in pkg_resources.working_set:
          installed[canonicalize_name(p.project_name)] = p
  
      query_names = [canonicalize_name(name) for name in query]
  
      for dist in [installed[pkg] for pkg in query_names if pkg in installed]:
          package = {
              'name': dist.project_name,
              'version': dist.version,
              'location': dist.location,
              'requires': [dep.project_name for dep in dist.requires()],
          }
          file_list = None
          if isinstance(dist, pkg_resources.DistInfoDistribution):
              # RECORDs should be part of .dist-info metadatas
              if dist.has_metadata('RECORD'):
                  lines = dist.get_metadata_lines('RECORD')
                  paths = [l.split(',')[0] for l in lines]
                  paths = [os.path.join(dist.location, p) for p in paths]
                  file_list = [os.path.relpath(p, dist.location) for p in paths]
          else:
              # Otherwise use pip's log for .egg-info's
              if dist.has_metadata('installed-files.txt'):
                  paths = dist.get_metadata_lines('installed-files.txt')
                  paths = [os.path.join(dist.egg_info, p) for p in paths]
                  file_list = [os.path.relpath(p, dist.location) for p in paths]
  
          if file_list:
              package['files'] = sorted(file_list)
          yield package
docs: Gather details from installed distributions. Print distribution name,
      version, location, and installed files. Installed files requires a
      pip generated 'installed-files.txt' in the distributions '.egg-info'
      directory.