code: def copy_file(self, infile, outfile, check=True):
          
          self.ensure_dir(os.path.dirname(outfile))
          logger.info('Copying %s to %s', infile, outfile)
          if not self.dry_run:
              msg = None
              if check:
                  if os.path.islink(outfile):
                      msg = '%s is a symlink' % outfile
                  elif os.path.exists(outfile) and not os.path.isfile(outfile):
                      msg = '%s is a non-regular file' % outfile
              if msg:
                  raise ValueError(msg + ' which would be overwritten')
              shutil.copyfile(infile, outfile)
          self.record_as_written(outfile)
docs: Copy a file respecting dry-run and force flags.