1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4#
5# Copyright (c) 2023 Huawei Device Co., Ltd.
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10#     http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18import sys
19
20A_CONST = 1
21
22
23class StatusCode():
24
25    def __init__(self, status=True, info=''):
26        self.status = status
27        self.info = info
28
29
30def check_status(func):
31    status = func()
32    if not status.status:
33        raise Exception("ERROR")
34    return StatusCode
35
36
37@check_status
38def func_1() -> StatusCode:
39    if A_CONST == 1:
40        return StatusCode()
41    else:
42        return StatusCode(False, "error")
43
44
45def main():
46    func_1()
47    print(func_1)
48
49
50if __name__ == "__main__":
51    sys.exit(main())
52