code: def rename(src, dst):
      '''
      On Windows, os.rename() will fail with a WindowsError exception if a file
      exists at the destination path. This function checks for this error and if
      found, it deletes the destination path first.
      '''
      try:
          os.rename(src, dst)
      except OSError as exc:
          if exc.errno != errno.EEXIST:
              raise
          try:
              os.remove(dst)
          except OSError as exc:
              if exc.errno != errno.ENOENT:
                  raise MinionError(
                      'Error: Unable to remove {0}: {1}'.format(
                          dst,
                          exc.strerror
                      )
                  )
          os.rename(src, dstf rename(src, dst):
      '''
      On Windows, os.rename() will fail with a WindowsError exception if a file
      exists at the destination path. This function checks for this error and if
      found, it deletes the destination path first.
      '''
      try:
          os.rename(src, dst)
      except OSError as exc:
          if exc.errno != errno.EEXIST:
              raise
          try:
              os.remove(dst)
          except OSError as exc:
              if exc.errno != errno.ENOENT:
                  raise MinionError(
                      'Error: Unable to remove {0}: {1}'.format(
                          dst,
                          exc.strerror
                      )
                  )
          os.rename(src, dst)
docs: On Windows, os.rename() will fail with a WindowsError exception if a file
      exists at the destination path. This function checks for this error and if
      found, it deletes the destination path first.