Files
FastDeploy/paddle2onnx/legacy/passes/pass_manager.py
Jason 6343b0db47 [Build] Support build with source code of Paddle2ONNX (#1559)
* Add notes for tensors

* Optimize some apis

* move some warnings

* Support build with Paddle2ONNX

* Add protobuf support

* Fix compile on mac

* add clearn package script

* Add paddle2onnx code

* remove submodule

* Add onnx ocde

* remove softlink

* add onnx code

* fix error

* Add cmake file

* fix patchelf

* update paddle2onnx

* Delete .gitmodules

---------

Co-authored-by: PaddleCI <paddle_ci@example.com>
Co-authored-by: pangyoki <pangyoki@126.com>
Co-authored-by: jiangjiajun <jiangjiajun@baidu.lcom>
2023-03-17 10:03:22 +08:00

40 lines
1.3 KiB
Python

# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import inspect
class PassManager(object):
PASSES = {}
def __init__(self, name, **kwargs):
self.name = name
self.kwargs = kwargs
def __call__(self, cls):
for k, v in inspect.getmembers(cls, inspect.ismethod):
if k == 'run_pass':
self.PASSES[self.name] = (v, self.kwargs)
@staticmethod
def run_pass(graph, custom_pass_list):
for pass_name in custom_pass_list:
try:
pass_func, kw = PassManager.PASSES[pass_name]
pass_func(graph, **kw)
except:
raise Exception("Error happened when excute pass: {}".format(
pass_name))
return graph