MetaGPT
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3"""
4@Time : 2023/5/11 16:15
5@Author : alexanderwu
6@File : singleton.py
7"""
8import abc
9
10
11class Singleton(abc.ABCMeta, type):
12"""
13Singleton metaclass for ensuring only one instance of a class.
14"""
15
16_instances = {}
17
18def __call__(cls, *args, **kwargs):
19"""Call method for the singleton metaclass."""
20if cls not in cls._instances:
21cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
22return cls._instances[cls]
23