helper function to convert arguments to vm function.
(self, arg: Any, cargs: list)
| 190 | self._save_function(func_name, saved_name, int(include_return), *cargs) |
| 191 | |
| 192 | def _convert(self, arg: Any, cargs: list) -> None: |
| 193 | """helper function to convert arguments to vm function.""" |
| 194 | |
| 195 | def _gettype(arg): |
| 196 | if isinstance(arg, np.float16): |
| 197 | return "float16" |
| 198 | elif isinstance(arg, Integral | bool): |
| 199 | return "int32" |
| 200 | else: |
| 201 | return "float32" |
| 202 | |
| 203 | if isinstance(arg, Object): |
| 204 | cargs.append(arg) |
| 205 | elif isinstance(arg, np.ndarray): |
| 206 | nd_arr = tvm.runtime.tensor(arg, device=tvm.cpu(0)) |
| 207 | cargs.append(nd_arr) |
| 208 | elif isinstance(arg, tvm.runtime.Tensor): |
| 209 | cargs.append(arg) |
| 210 | elif isinstance(arg, tuple | list): |
| 211 | field_args: list[Any] = [] |
| 212 | for field in arg: |
| 213 | self._convert(field, field_args) |
| 214 | cargs.append(tuple(field_args)) |
| 215 | elif isinstance(arg, Number | bool): |
| 216 | dtype = _gettype(arg) |
| 217 | value = tvm.runtime.tensor(np.array(arg, dtype=dtype), device=tvm.cpu(0)) |
| 218 | cargs.append(value) |
| 219 | elif isinstance(arg, str): |
| 220 | cargs.append(arg) |
| 221 | else: |
| 222 | raise TypeError(f"Unsupported type: {type(arg)}") |
| 223 | |
| 224 | def _convert_func_named_args(self, func_name: str, args: Any, **kwargs: Any) -> Any: |
| 225 | """ |
no test coverage detected