Coverage for ocp_resources/inference_service.py: 0%

21 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-01-30 10:48 +0200

1from typing import Optional, Dict, Any 

2 

3from ocp_resources.resource import NamespacedResource, MissingRequiredArgumentError 

4 

5 

6class InferenceService(NamespacedResource): 

7 """ 

8 https://github.com/kserve/kserve/blob/master/pkg/apis/serving/v1beta1/inference_service.go 

9 """ 

10 

11 api_group: str = NamespacedResource.ApiGroup.SERVING_KSERVE_IO 

12 

13 def __init__( 

14 self, 

15 predictor: Optional[Dict[str, Any]] = None, 

16 explainer: Optional[Dict[str, Any]] = None, 

17 transformer: Optional[Dict[str, Any]] = None, 

18 **kwargs, 

19 ): 

20 """ 

21 InferenceService object 

22 

23 Args: 

24 predictor (Optional[Dict[str, Any]], mandatory if yaml_file is not provided): Defines the model serving spec. 

25 explainer (Optional[Dict[str, Any]]): Defines the model explanation service spec. 

26 transformer (Optional[Dict[str, Any]]): Defines the pre/post processing before and after the predictor call. 

27 """ 

28 super().__init__( 

29 **kwargs, 

30 ) 

31 self.predictor = predictor 

32 self.explainer = explainer 

33 self.transformer = transformer 

34 

35 def to_dict(self) -> None: 

36 super().to_dict() 

37 if not self.kind_dict and not self.yaml_file: 

38 if not self.predictor: 

39 raise MissingRequiredArgumentError(argument="predictor") 

40 

41 self.res["spec"] = {} 

42 _spec = self.res["spec"] 

43 

44 _spec["predictor"] = self.predictor 

45 

46 if self.explainer: 

47 _spec["explainer"] = self.explainer 

48 

49 if self.transformer: 

50 _spec["transformer"] = self.transformer