17 lines
526 B
Python
Executable File
17 lines
526 B
Python
Executable File
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
# this repository contains the full copyright notices and license terms.
|
|
|
|
|
|
class Singleton(type):
|
|
'''
|
|
Metaclass for singleton pattern
|
|
'''
|
|
def __init__(cls, name, bases, dict):
|
|
super(Singleton, cls).__init__(name, bases, dict)
|
|
cls.instance = None
|
|
|
|
def __call__(cls, *args, **kwargs):
|
|
if cls.instance is None:
|
|
cls.instance = super(Singleton, cls).__call__(*args, **kwargs)
|
|
return cls.instance
|