6
6
from enum import Enum
7
7
from pathlib import Path
8
8
from threading import Lock , Thread
9
- from typing import Dict , Union
9
+ from typing import Dict , Optional , Union
10
10
11
11
import kserve
12
- import numpy as np
13
12
from cloudevents .http import CloudEvent
14
- from common .util import assign_request_to_inputs_instances_after_validation
15
- from kserve .errors import InvalidInput
16
13
from kserve .grpc .grpc_predict_v2_pb2 import ModelInferRequest , ModelInferResponse
17
14
from shared .secrets_resolver import SecretsResolver
18
15
@@ -26,14 +23,15 @@ class Status(Enum):
26
23
READY = 2
27
24
FAILED = 3
28
25
29
- _config : dict
26
+ _config : Dict
30
27
_model : object
31
28
_load_lock : Lock = Lock ()
32
29
_predict_lock : Lock = Lock ()
33
30
_status : Status = Status .NOT_READY
34
31
_logger : logging .Logger
32
+ ready : bool
35
33
36
- def __init__ (self , config : dict ):
34
+ def __init__ (self , config : Dict ):
37
35
super ().__init__ (MODEL_BASENAME )
38
36
self ._config = config
39
37
self .logger = logging .getLogger (__name__ )
@@ -107,41 +105,32 @@ def try_load(self):
107
105
if hasattr (self ._model , "load" ):
108
106
self ._model .load ()
109
107
110
- def validate (self , payload ):
111
- if (
112
- "instances" in payload
113
- and not isinstance (payload ["instances" ], (list , np .ndarray ))
114
- or "inputs" in payload
115
- and not isinstance (payload ["inputs" ], (list , np .ndarray ))
116
- ):
117
- raise InvalidInput (
118
- 'Expected "instances" or "inputs" to be a list or NumPy ndarray'
119
- )
120
-
121
- return assign_request_to_inputs_instances_after_validation (payload )
122
-
123
108
def preprocess (
124
109
self ,
125
110
payload : Union [Dict , CloudEvent , ModelInferRequest ],
126
- headers : Dict [str , str ] = None ,
111
+ headers : Optional [ Dict [str , str ] ] = None ,
127
112
) -> Union [Dict , ModelInferRequest ]:
128
113
if not hasattr (self ._model , "preprocess" ):
129
114
return payload
130
- return self ._model .preprocess (payload )
115
+ return self ._model .preprocess (payload ) # type: ignore
131
116
132
117
def postprocess (
133
- self , response : Union [Dict , ModelInferResponse ], headers : Dict [str , str ] = None
118
+ self ,
119
+ response : Union [Dict , ModelInferResponse ],
120
+ headers : Optional [Dict [str , str ]] = None ,
134
121
) -> Dict :
135
122
if not hasattr (self ._model , "postprocess" ):
136
123
return response
137
- return self ._model .postprocess (response )
124
+ return self ._model .postprocess (response ) # type: ignore
138
125
139
126
def predict (
140
- self , payload : Union [Dict , ModelInferRequest ], headers : Dict [str , str ] = None
127
+ self ,
128
+ payload : Union [Dict , ModelInferRequest ],
129
+ headers : Optional [Dict [str , str ]] = None ,
141
130
) -> Union [Dict , ModelInferResponse ]:
142
131
try :
143
132
self ._predict_lock .acquire ()
144
- return self ._model .predict (payload )
133
+ return self ._model .predict (payload ) # type: ignore
145
134
except Exception :
146
135
response = {}
147
136
logging .exception ("Exception while running predict" )
0 commit comments