19 lines
591 B
Python
19 lines
591 B
Python
# Copyright (c) ONNX Project Contributors
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
from __future__ import annotations
|
|
|
|
from onnx.helper import tensor_dtype_to_np_dtype
|
|
from onnx.reference.op_run import OpRun
|
|
|
|
|
|
class Optional(OpRun):
|
|
def _run(self, x=None, type=None): # type: ignore # noqa: A002
|
|
if x is not None and type is not None:
|
|
dt = tensor_dtype_to_np_dtype(type)
|
|
if dt != x.dtype:
|
|
raise TypeError(
|
|
f"Input dtype {x.dtype} ({dt}) and parameter type_proto {type} disagree"
|
|
)
|
|
return ([x],)
|