def decorator(func): _api_name = func.__name__ if api_name is None else api_name validate_inference_api_name(_api_name) if input is None: # Raise error when input adapter class passed without instantiation if not args or not (inspect.isclass(args[0]) and issubclass(args[0], BaseInputAdapter)): raise InvalidArgument( "BentoService @api decorator first parameter must " "be an instance of a class derived from " "bentoml.adapters.BaseInputAdapter ") # noinspection PyPep8Naming InputAdapter = args[0] input_adapter = InputAdapter(*args[1:], **kwargs) output_adapter = DefaultOutput() else: assert isinstance(input, BaseInputAdapter), ( "API input parameter must be an instance of a class derived from " "bentoml.adapters.BaseInputAdapter") input_adapter = input output_adapter = output or DefaultOutput() setattr(func, "_is_api", True) setattr(func, "_input_adapter", input_adapter) setattr(func, "_output_adapter", output_adapter) setattr(func, "_api_name", _api_name) setattr(func, "_api_doc", api_doc) setattr(func, "_mb_max_batch_size", mb_max_batch_size) setattr(func, "_mb_max_latency", mb_max_latency) setattr(func, "_batch", batch) return func
def _make_api(input_adapter, user_func): return InferenceAPI( None, "test_api", "", input_adapter=input_adapter, user_func=user_func, output_adapter=DefaultOutput(), )
def _make_api(input_adapter, user_func): if not input_adapter.BATCH_MODE_SUPPORTED and batch_mode: pytest.skip() if not input_adapter.SINGLE_MODE_SUPPORTED and not batch_mode: pytest.skip() return InferenceAPI( None, "test_api", "", input_adapter=input_adapter, user_func=user_func, output_adapter=DefaultOutput(), batch=batch_mode, )
def _make_api(input_adapter, user_func, output_adapter=None, **kwargs): if not input_adapter.BATCH_MODE_SUPPORTED and batch_mode: pytest.skip() if not input_adapter.SINGLE_MODE_SUPPORTED and not batch_mode: pytest.skip() if output_adapter is None: output_adapter = DefaultOutput() return InferenceAPI( service_mock, "test_api", "", input_adapter=input_adapter, user_func=user_func, output_adapter=output_adapter, batch=batch_mode, **kwargs, )