def prepare_editable_requirement(<EOL>self,<EOL>req,  <EOL>require_hashes,  <EOL>use_user_site,  <EOL>finder  <EOL>):<EOL>
assert req.editable, "<STR_LIT>"<EOL>logger.info('<STR_LIT>', req)<EOL>with indent_log():<EOL><INDENT>if require_hashes:<EOL><INDENT>raise InstallationError(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>' % req<EOL>)<EOL><DEDENT>req.ensure_has_source_dir(self.src_dir)<EOL>req.update_editable(not self._download_should_save)<EOL>abstract_dist = make_abstract_dist(req)<EOL>with self.req_tracker.track(req):<EOL><INDENT>abstract_dist.prep_for_dist(finder, self.build_isolation)<EOL><DEDENT>if self._download_should_save:<EOL><INDENT>req.archive(self.download_dir)<EOL><DEDENT>req.check_if_exists(use_user_site)<EOL><DEDENT>return abstract_dist<EOL>
Prepare an editable requirement