def get_dist_path(uuid: str, tag: str) -> Tuple[Path, Path]: """Get the package path according ID and TAG :param uuid: the UUID of the executor :param tag: the TAG of the executor :return: package and its dist-info path """ pkg_path = get_hub_packages_dir() / uuid pkg_dist_path = pkg_path / f'{tag}.dist-info' return pkg_path, pkg_dist_path
def list_local(): """List the locally-available executor packages. :return: the list of local executors (if found) """ result = [] for dist_name in get_hub_packages_dir().glob(r'*/v*.dist-info'): result.append(dist_name) return result
def uninstall_local(uuid: str): """Uninstall the executor package. :param uuid: the UUID of the executor """ pkg_path, _ = get_dist_path(uuid, None) for dist in get_hub_packages_dir().glob(f'{uuid}/*.dist-info'): shutil.rmtree(dist) if pkg_path.exists(): shutil.rmtree(pkg_path)
def get_lockfile() -> str: """Get the path of file locker :return: the path of file locker """ return str(get_hub_packages_dir() / 'LOCK')
def get_config_path(local_id: str) -> 'Path': """Get the local configure file :param local_id: the random local ID of the executor :return: json config path """ return get_hub_packages_dir() / f'{local_id}.json'