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 
18 class Singleton(type):
19     _instances = {}
20 
21     def __call__(cls, *args, **kwargs):
22         if cls not in cls._instances:
23             cls._instances[cls] = super(Singleton,
24                                         cls).__call__(*args, **kwargs)
25         return cls._instances[cls]