Coverage for mlprodict/onnxrt/ops_cpu/op_optional.py: 89%
19 statements
« prev ^ index » next coverage.py v7.1.0, created at 2023-02-04 02:28 +0100
« prev ^ index » next coverage.py v7.1.0, created at 2023-02-04 02:28 +0100
1# -*- encoding: utf-8 -*-
2# pylint: disable=E0203,E1101,C0111
3"""
4@file
5@brief Runtime operator.
6"""
7import numpy
8from ._op import OpRun
11class OptionalGetElement(OpRun):
13 def __init__(self, onnx_node, desc=None, **options):
14 OpRun.__init__(self, onnx_node, desc=desc, **options)
16 def _run(self, x, attributes=None, verbose=0, fLOG=None): # pylint: disable=W0221
17 if not isinstance(x, list):
18 raise TypeError( # pragma: no cover
19 f"Unexpected type {type(x)!r} for x.")
20 if len(x) > 0:
21 return (x[0], )
22 return ([], )
25class OptionalHasElement(OpRun):
27 def __init__(self, onnx_node, desc=None, **options):
28 OpRun.__init__(self, onnx_node, desc=desc, **options)
30 def _run(self, x, attributes=None, verbose=0, fLOG=None): # pylint: disable=W0221
31 if not isinstance(x, list):
32 raise TypeError( # pragma: no cover
33 f"Unexpected type {type(x)!r} for x.")
34 if len(x) > 0:
35 return (numpy.array([e is not None for e in x]), )
36 return ([], )