def run(ctx, api_name, archive_path=archive_path, with_conda=False): if with_conda: config = load_bentoml_config(archive_path) metadata = config['metadata'] env_name = metadata['service_name'] + '_' + metadata[ 'service_version'] yaml = YAML() yaml.default_flow_style = False tmpf = tempfile.NamedTemporaryFile(delete=False) env_path = tmpf.name yaml.dump(config['env']['conda_env'], Path(env_path)) pip_req = os.path.join(archive_path, 'requirements.txt') subprocess.call( 'command -v conda >/dev/null 2>&1 || {{ echo >&2 "--with-conda ' 'parameter requires conda but it\'s not installed."; exit 1; }} && ' 'conda env update -n {env_name} -f {env_file} && ' 'conda init bash && ' 'eval "$(conda shell.bash hook)" && ' 'conda activate {env_name} && ' '{{ [ -f {pip_req} ] && pip install -r {pip_req} || echo "no pip ' 'dependencies."; }} &&' 'bentoml {api_name} {archive_path} {args}'.format( env_name=env_name, env_file=env_path, archive_path=archive_path, api_name=api_name, args=' '.join(map(escape_shell_params, ctx.args)), pip_req=pip_req, ), shell=True, ) return track_cli('run') api = load_service_api(archive_path, api_name) api.handle_cli(ctx.args)
def run(ctx, api_name, archive_path=archive_path): track_cli('run') api = load_service_api(archive_path, api_name) api.handle_cli(ctx.args)