code: def temp_copy_extracted_submission(self):
      
      tmp_copy_dir = os.path.join(self.submission_dir, 'tmp_copy')
      shell_call(['cp', '-R', os.path.join(self.extracted_submission_dir),
                  tmp_copy_dir])
      return tmp_copy_dir
docs: Creates a temporary copy of extracted submission.
  
      When executed, submission is allowed to modify it's own directory. So
      to ensure that submission does not pass any data between runs, new
      copy of the submission is made before each run. After a run temporary copy
      of submission is deleted.
  
      Returns:
        directory where temporary copy is located