code: def move(self, old_path, new_path, raise_if_exists=False):
          
          if raise_if_exists and os.path.exists(new_path):
              raise FileAlreadyExists('Destination exists: %s' % new_path)
          d = os.path.dirname(new_path)
          if d and not os.path.exists(d):
              self.mkdir(d)
          try:
              os.rename(old_path, new_path)
          except OSError as err:
              if err.errno == errno.EXDEV:
                  new_path_tmp = '%s-%09d' % (new_path, random.randint(0, 999999999))
                  shutil.copy(old_path, new_path_tmp)
                  os.rename(new_path_tmp, new_path)
                  os.remove(old_path)
              else:
                  raise err
docs: Move file atomically. If source and destination are located
          on different filesystems, atomicity is approximated
          but cannot be guaranteed.