def get_requirement_info(dist):<EOL>
if not dist_is_editable(dist):<EOL><INDENT>return (None, False, [])<EOL><DEDENT>location = os.path.normcase(os.path.abspath(dist.location))<EOL>from pipenv.patched.notpip._internal.vcs import vcs, RemoteNotFoundError<EOL>vc_type = vcs.get_backend_type(location)<EOL>if not vc_type:<EOL><INDENT>req = dist.as_requirement()<EOL>logger.debug(<EOL>'<STR_LIT>', req,<EOL>location,<EOL>)<EOL>comments = [<EOL>'<STR_LIT>'.format(req)<EOL>]<EOL>return (location, True, comments)<EOL><DEDENT>try:<EOL><INDENT>req = vc_type.get_src_requirement(location, dist.project_name)<EOL><DEDENT>except RemoteNotFoundError:<EOL><INDENT>req = dist.as_requirement()<EOL>comments = [<EOL>'<STR_LIT>'.format(<EOL>vc_type.__name__, req,<EOL>)<EOL>]<EOL>return (location, True, comments)<EOL><DEDENT>except BadCommand:<EOL><INDENT>logger.warning(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>',<EOL>location,<EOL>vc_type.name,<EOL>)<EOL>return (None, True, [])<EOL><DEDENT>except InstallationError as exc:<EOL><INDENT>logger.warning(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>", exc<EOL>)<EOL><DEDENT>else:<EOL><INDENT>if req is not None:<EOL><INDENT>return (req, True, [])<EOL><DEDENT><DEDENT>logger.warning(<EOL>'<STR_LIT>', location<EOL>)<EOL>comments = ['<STR_LIT>']<EOL>return (None, False, comments)<EOL>
Compute and return values (req, editable, comments) for use in
FrozenRequirement.from_dist().