code: def movetree(src, dst):
      
      try:
          shutil.move(src, dst)
      except:
          copytree(src, dst, symlinks=True, hardlinks=True)
          shutil.rmtree(src)
docs: Attempts a move, and falls back to a copy+delete if this fails