def install_local( zip_package: 'Path', executor: 'HubExecutor', install_deps: bool = False, ): """Install the package in zip format to the Jina Hub root. :param zip_package: the path of the zip file :param executor: the executor to install :param install_deps: if set, install dependencies """ pkg_path, pkg_dist_path = get_dist_path(executor.uuid, executor.tag) # clean the existed dist_path for dist in pkg_path.glob(f'*.dist-info'): shutil.rmtree(dist) # unpack the zip package to the root pkg_path unpack_package(zip_package, pkg_path) # create dist-info folder pkg_dist_path.mkdir(parents=False, exist_ok=True) install_package_dependencies(install_deps, pkg_dist_path, pkg_path) manifest_path = pkg_path / 'manifest.yml' if manifest_path.exists(): shutil.copyfile(manifest_path, pkg_dist_path / 'manifest.yml') # store the commit id in local if executor.commit_id is not None: commit_file = pkg_dist_path / f'PKG-COMMIT-{executor.commit_id}' commit_file.touch()
def test_unpack_package_unsupported(tmpdir): with pytest.raises(ValueError): helper.unpack_package( Path(__file__).parent / "dummy_executor.unsupported", tmpdir / 'dummy_executor', )
def test_unpack_package(tmpdir, package_file): helper.unpack_package(package_file, tmpdir / 'dummy_executor')
def test_unpack_package(tmpdir, dummy_zip_file): helper.unpack_package(dummy_zip_file, tmpdir / 'dummp_executor')