def move_to(self, destination_filename: str,
                alter_if_clash: bool = True) -> None:
        """
        Move the file to which this class refers to a new location.
        The function will not overwrite existing files (but offers the option
        to rename files slightly to avoid a clash).

        Args:
            destination_filename: filename to move to
            alter_if_clash: if ``True`` (the default), appends numbers to
                the filename if the destination already exists, so that the
                move can proceed.
        """
        if not self.src_filename:
            return
        if alter_if_clash:
            counter = 0
            while os.path.exists(destination_filename):
                root, ext = os.path.splitext(destination_filename)
                destination_filename = "{r}_{c}{e}".format(
                    r=root, c=counter, e=ext)
                counter += 1
            # ... for example, "/a/b/c.txt" becomes "/a/b/c_0.txt", then
            # "/a/b/c_1.txt", and so on.
        else:
            if os.path.exists(destination_filename):
                src = self.rescue_filename or self.src_filename
                log.warning("Destination exists; won't move {!r} to {!r}",
                            src, destination_filename)
                return
        if self.rescue_filename:
            shutil.move(self.rescue_filename, destination_filename)
            os.remove(self.src_filename)
            log.info("Moved recovered file {!r} to {!r} and deleted corrupted "
                     "original {!r}",
                     self.rescue_filename,
                     destination_filename,
                     self.src_filename)
            self.rescue_filename = ""
        else:
            shutil.move(self.src_filename, destination_filename)
            log.info("Moved {!r} to {!r}", self.src_filename,
                     destination_filename)
        self.src_filename = ""
Move the file to which this class refers to a new location.
        The function will not overwrite existing files (but offers the option
        to rename files slightly to avoid a clash).

        Args:
            destination_filename: filename to move to
            alter_if_clash: if ``True`` (the default), appends numbers to
                the filename if the destination already exists, so that the
                move can proceed.