27 lines
870 B
Python
27 lines
870 B
Python
|
|
# -*- coding: utf-8 -*-
|
||
|
|
# Copyright (C) 2018-2025 Intel Corporation
|
||
|
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
# type: ignore
|
||
|
|
from openvino._pyopenvino.passes import Manager as ManagerBase
|
||
|
|
from openvino._pyopenvino.passes import PassBase
|
||
|
|
|
||
|
|
|
||
|
|
class Manager(ManagerBase):
|
||
|
|
"""Manager that additionally holds transformations objects."""
|
||
|
|
|
||
|
|
def __init__(self) -> None:
|
||
|
|
super().__init__()
|
||
|
|
self.passes_list = [] # need to keep python instances alive
|
||
|
|
|
||
|
|
def register_pass(self, *args, **kwargs) -> PassBase:
|
||
|
|
"""Register transformation for further execution."""
|
||
|
|
for arg in args:
|
||
|
|
if isinstance(arg, PassBase):
|
||
|
|
self.passes_list.append(arg)
|
||
|
|
|
||
|
|
for arg in kwargs.values():
|
||
|
|
if isinstance(arg, PassBase):
|
||
|
|
self.passes_list.append(arg)
|
||
|
|
|
||
|
|
return super().register_pass(*args, **kwargs)
|