code: def unmount_remote_repo(mount_point: str, mount_root: str):
      """
      Utility function to unmount remote repo and cleanup local directories created by Aim for mounting
      """
  
      # TODO: [MV] this is experimental
      # TODO: [MV] decide later what to do with unmounting remote repo
      if not os.path.exists(mount_point):
          return
  
      if not os.path.ismount(mount_point):
          shutil.rmtree(mount_root)
          return
  
      # force unmount the remote path as we are sure we've done everything we need up until to this point
      # and don't want to get stopped by any other processes stopping from unmounting
      umount_executable = shutil.which("umount")
      cmd = [umount_executable, mount_point]
      child = subprocess.Popen(
          cmd,
      )
      child.communicate()
      exit_code = child.wait()
      if exit_code != 0:
          # in case of failure log warning so the user can unmount manually if needed
          logger.warning(
              f"Could not unmount path: {mount_point}.\n"
              f"Please unmount manually using command:\n"
              f'{" ".join(cmd)}'
          )
      else:
          shutil.rmtree(mount_root)
  
file_path: aim/aim/ext/sshfs/utils.py
imports: import os
  import platform
  import shutil
  import subprocess
  import time
  import logging
  from typing import Optional, Tuple
label_desc: Use image node_id 6 for calling a global function with example usage: unmount_remote_repo(mount_point, mount_root) without return types