code: def get_requirement_info(dist):
      # type: (Distribution) -> RequirementInfo
      
      if not dist_is_editable(dist):
          return (None, False, [])
  
      location = os.path.normcase(os.path.abspath(dist.location))
  
      from pipenv.patched.notpip._internal.vcs import vcs, RemoteNotFoundError
      vc_type = vcs.get_backend_type(location)
  
      if not vc_type:
          req = dist.as_requirement()
          logger.debug(
              'No VCS found for editable requirement {!r} in: {!r}', req,
              location,
          )
          comments = [
              '# Editable install with no version control ({})'.format(req)
          ]
          return (location, True, comments)
  
      try:
          req = vc_type.get_src_requirement(location, dist.project_name)
      except RemoteNotFoundError:
          req = dist.as_requirement()
          comments = [
              '# Editable {} install with no remote ({})'.format(
                  vc_type.__name__, req,
              )
          ]
          return (location, True, comments)
  
      except BadCommand:
          logger.warning(
              'cannot determine version of editable source in %s '
              '(%s command not found in path)',
              location,
              vc_type.name,
          )
          return (None, True, [])
  
      except InstallationError as exc:
          logger.warning(
              "Error when trying to get requirement for VCS system %s, "
              "falling back to uneditable format", exc
          )
      else:
          if req is not None:
              return (req, True, [])
  
      logger.warning(
          'Could not determine repository location of %s', location
      )
      comments = ['## !! Could not determine repository location']
  
      return (None, False, comments)
docs: Compute and return values (req, editable, comments) for use in
      FrozenRequirement.from_dist().